Advertisement
Guest User

Untitled

a guest
Feb 17th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3.  
  4. use warnings;
  5. use strict;
  6. package Module1;
  7.  
  8. my @user;
  9. my $count = 0;
  10. my @test;
  11. my @last =qx(last);
  12. my @logins;
  13. my %logins_by_user;
  14. my @UserDiskUsage;
  15. #my $pass =qx(sudo passwd -S @user);
  16.  
  17. #Opens the file /etc/passwd and puts the users with an uid over 1000 but less that 65000 into an array.
  18. sub userloggins {
  19. open( my $passwd, "<", "/etc/passwd") or die "/etc/passwd failed to open.n";
  20.  
  21. while (my $lines = <$passwd>) {
  22. my @splitarray = split(/:/, $lines );
  23. if( $splitarray[2] >= 1000 && $splitarray[2] < 65000) {
  24.  
  25. $user[$count] =$splitarray[0];
  26. #print "$user[$count]n";
  27. $count++;
  28. }
  29. }
  30. close $passwd;
  31.  
  32. #Counts how many times each user has logged in and stores them in a hash, then sorts them
  33.  
  34. for my $user (@user) {
  35. $logins_by_user{$user} = grep /^Q$userE /, `last '$user'`;
  36. }
  37.  
  38. for my $user (
  39. sort { $logins_by_user{$b} <=> $logins_by_user{$a} || $a cmp $b } @user
  40. ) {
  41. print("$user: $logins_by_user{$user}n");
  42. }
  43. }
  44. userloggins();
  45. #del 2, monitor user password age
  46. print "-------------------------------------------------------n";
  47.  
  48. PasswordAge();
  49.  
  50. sub PasswordAge {
  51. my $days = 10;
  52. my $currentdate = (qx(date +%s)) / 86400;
  53. for my $i (0...$#user) {
  54. my @shadowDays = qx(sudo grep $user[$i] /etc/shadow | cut -d: -f3);
  55. if ($shadowDays[0] < ($currentdate - $days)){
  56.  
  57. print ("User $user[$i] has not changed their password in $days days.n");
  58. }
  59. #print "$currentdaten";
  60.  
  61.  
  62.  
  63. #print "$user Has not changed their password since $splitpassn";
  64. }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement