31 lines
758 B
Perl
31 lines
758 B
Perl
#!/usr/bin/perl
|
|
|
|
# $Header: /home/cvs/386BSD/ports/lang/perl/eg/scan/scan_passwd,v 1.1.1.1 1993/08/23 21:29:45 nate Exp $
|
|
|
|
# This scans passwd file for security holes.
|
|
|
|
open(Pass,'/etc/passwd') || die "Can't open passwd file: $!\n";
|
|
# $dotriv = (`date` =~ /^Mon/);
|
|
$dotriv = 1;
|
|
|
|
while (<Pass>) {
|
|
($login,$pass,$uid,$gid,$gcos,$home,$shell) = split(/:/);
|
|
if ($shell eq '') {
|
|
print "Short: $_";
|
|
}
|
|
next if /^[+]/;
|
|
if ($pass eq '') {
|
|
if (index(":sync:lpq:+:", ":$login:") < 0) {
|
|
print "No pass: $login\t$gcos\n";
|
|
}
|
|
}
|
|
elsif ($dotriv && crypt($login,substr($pass,0,2)) eq $pass) {
|
|
print "Trivial: $login\t$gcos\n";
|
|
}
|
|
if ($uid == 0) {
|
|
if ($login !~ /^.?root$/ && $pass ne '*') {
|
|
print "Extra root: $_";
|
|
}
|
|
}
|
|
}
|