NAME

Ubic::AccessGuard - class which guards simple service operations

VERSION

version 1.38_01

SYNOPSIS

use Ubic::AccessGuard;

$guard = Ubic::AccessGuard->new($service); # change effective uid and effective gid to $service->user and $service->group
undef $guard; # change them back

DESCRIPTION

Ubic::AccessGuard sets effective uid to specified service's user id if neccesary, and restore it back on destruction.

It's usage is limited, because when effective uid is not equal to real uid, perl automatically turns on tainted mode. Because of this, only tainted-safe code should be called when AccessGuard is active. Ubic doesn't start services under this guard, but uses it when acquiring locks and writing service status files.

METHODS

new($service)

Construct new access guard object.

User will be changed into user apporpriate for running $service. It will be changed back on guard's desctruction.

AUTHOR

Vyacheslav Matyukhin <mmcleric@yandex-team.ru>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Yandex LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.