#!/usr/local/bin/perl -w
#!/bin/bash

#---------------------------------------------------------------
#   lk.pl by K
#
#   The purpose of this program is to search a users personal 
#   directory structure to find, at least, read permissions on
#   any directory contained therein and print the information
#   out.
#
#   Version 1.0 beta
#---------------------------------------------------------------


if ($#ARGV < 0) {
   die "List specified user directories with system:anyuser rl permissions.\nUsage:  $0 user1 user2 ...\n";
}
foreach $item (@ARGV){
   $bool = 1;
   chomp ($item);
   $s = `/usr/athena/bin/hes $item filsys`;
   ($basedir) = ($s =~ /(\/afs.*) w/);

   if ($basedir){  
      $s = `/usr/afsws/bin/fs la $basedir 2> /dev/null`;
   }   
   else {
      print "\n$item is a bad username.\n\n";
      $bool = 0;
   }

   if ($basedir && $s !~ /(system:anyuser.*)/) {
      print "\n$item does not have system:anyuser access granted. \n\n";
      $bool = 0;
   }
      
   if($bool) {
      
      @s = `/bin/find $basedir -type d 2> /dev/null`;
      print "\nBase directory: $basedir\n\n";

      foreach $dir (@s) {  
         chomp ($dir);
         $FSaccess = `/usr/afsws/bin/fs la $dir 2> /dev/null`;   
         ($permissions) = ($FSaccess =~ /(system:anyuser.*)/);
         if ($permissions) {
            chomp ($permissions);
            if ($permissions =~ /rl/){
               if( $dir ne $basedir){ ($dir) = (($dir) =~ (/$basedir(.*)/))};
               ($who, $perm) = split(' ',$permissions);
               print "$dir - $who $perm\n";
            }            
         }#if  
      }#foreach
   }#if  
}#foreach

