42 lines
813 B
Perl
Executable File
42 lines
813 B
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
# call getpwnam() or getgrnam() to check if user or group (given as arg) exists
|
|
# on the system (getpwnam() and getgrnam() use nsswitch.conf, so it works
|
|
# even if NYS (or similar) is used)
|
|
|
|
sub usage {
|
|
return "usage:\n has_usrgrp.pl [-user user|-group group] [-printuid|-printgid]\n";
|
|
}
|
|
|
|
if ( @ARGV < 2 || @ARGV > 3) {
|
|
die usage();
|
|
}
|
|
|
|
if ( $ARGV[0] eq "-user" ) {
|
|
($name, $passwd, $uid, $gid) = getpwnam($ARGV[1]);
|
|
}
|
|
elsif ( $ARGV[0] eq "-group" ) {
|
|
($name, $passwd, $gid) = getgrnam($ARGV[1]);
|
|
}
|
|
else {
|
|
die usage();
|
|
}
|
|
|
|
if ( ! $name) {
|
|
exit 1;
|
|
}
|
|
|
|
if ( @ARGV == 3 ) {
|
|
if ( $ARGV[2] eq "-printgid" ) {
|
|
print $gid, "\n";
|
|
}
|
|
elsif ( $ARGV[2] eq "-printuid" ) {
|
|
if ( defined $uid ) {
|
|
print $uid, "\n";
|
|
} else {
|
|
die usage();
|
|
}
|
|
}
|
|
}
|
|
exit 0;
|