File: has_usrgrp.pl

package info (click to toggle)
fcron 3.0.1-1.3
  • links: PTS
  • area: main
  • in suites: lenny, squeeze
  • size: 3,028 kB
  • ctags: 642
  • sloc: ansic: 7,978; sh: 1,107; makefile: 352; perl: 57
file content (41 lines) | stat: -rwxr-xr-x 813 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/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;