home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl502b.zip / eg / scan / scan_passwd < prev    next >
Text File  |  1994-10-18  |  723b  |  31 lines

  1. #!/usr/bin/perl
  2.  
  3. # $RCSfile: scan_passwd,v $$Revision: 4.1 $$Date: 92/08/07 17:20:38 $
  4.  
  5. # This scans passwd file for security holes.
  6.  
  7. open(Pass,'/etc/passwd') || die "Can't open passwd file: $!\n";
  8. # $dotriv = (`date` =~ /^Mon/);
  9. $dotriv = 1;
  10.  
  11. while (<Pass>) {
  12.     ($login,$pass,$uid,$gid,$gcos,$home,$shell) = split(/:/);
  13.     if ($shell eq '') {
  14.     print "Short: $_";
  15.     }
  16.     next if /^[+]/;
  17.     if ($pass eq '') {
  18.     if (index(":sync:lpq:+:", ":$login:") < 0) {
  19.         print "No pass: $login\t$gcos\n";
  20.     }
  21.     }
  22.     elsif ($dotriv && crypt($login,substr($pass,0,2)) eq $pass) {
  23.     print "Trivial: $login\t$gcos\n";
  24.     }
  25.     if ($uid == 0) {
  26.     if ($login !~ /^.?root$/ && $pass ne '*') {
  27.         print "Extra root: $_";
  28.     }
  29.     }
  30. }
  31.