Unix-SavedIDs
view release on metacpan or search on metacpan
lib/Unix/SetUser.pm view on Meta::CPAN
# get primary gid
if ( defined($group) && $group =~ $is_int ) {
$gid = $1;
if ( !getgrgid($gid) ) {
croak "Primary group id '$gid' does not exist\n";
}
}
else {
# use user's primary group if no primary group specified
if ( !defined($group) ) {
$gid = (getpwuid($uid))[3];
if ( !defined($gid)) {
croak "Failed to get primary group ID for uid '$uid'";
}
}
else {
# get gid from group name
$gid = getgrnam($group);
if ( !defined($gid) ) {
croak "Primary group '$group' does not exist";
}
t/30.setuser.t view on Meta::CPAN
foreach my $type ('uid','gid','user','group') {
$exist{$type} = [];
$nonexist{$type} = [];
}
TRYUID: foreach my $uid (1 .. 60000) {
if ( $uid == $< ) {
# hey, that's me!
next;
}
my $gid = (getpwuid($uid))[3];
if ( defined($gid) ) {
if ($gid == 0) {
next;
}
push(@{$exist{uid}},$uid);
push(@{$exist{user}},(getpwuid($uid))[0]);
push(@{$exist{gid}},$gid);
push(@{$exist{group}},(getgrgid($gid))[0]);
} else {
push(@{$nonexist{uid}},$uid);
}
if ( !getgrgid($uid) ) {
push(@{$nonexist{gid}}, $uid);
}
if ( $uid >= 60000 ) {
die "Failed to find 5 existant and nonexistant uids and gids "
t/30.setuser.t view on Meta::CPAN
my @errs;
my $uid = to_int(shift(@$test));
if ( $< != $uid ) {
push(@errs,"Failed to change uid to $uid");
}
if ( $> != $uid ) {
push(@errs,"Failed to change euid to $uid");
}
my $prim_gid = shift(@$test);
if ( !defined($prim_gid) ) {
$prim_gid = (getpwuid($uid))[3];
}
else {
$prim_gid = to_int($prim_gid,'group');
}
my @sup_gids;
my $gid_string = $prim_gid;
foreach my $group (@$test) {
$gid_string .= ' '.to_int($group,'group');
}
if ( !@$test ) {
( run in 0.373 second using v1.01-cache-2.11-cpan-8d75d55dd25 )