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 )