Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.89 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. ############## Funksjoner ##############
  4.  
  5. ## Sjekker mot passwd-fila om brukernavnet finnes
  6. ## Uses: getpwnam(), length().
  7.  
  8. sub sjekk_navn
  9. {
  10.     my $brukernavn = $_[0];
  11.     my $finnes;
  12.     my($name, $pass, $uid, $gid, $quota, $comment, $gcos, $dir, $shell, $expire) = getpwnam($brukernavn);
  13.     #print "Name: $name \nUID: $uid \nShell: $shell\n";
  14.     if(length($name) > 0){
  15.         $finnes = "ja";
  16.     }else{
  17.         $finnes = "nei";
  18.     }
  19.     return($finnes);
  20. }
  21.  
  22. ## Genererer brukernavn fra navn
  23. ## Uses: substr(), sjekk_navn().
  24.  
  25. sub gen_bruker
  26. {
  27.     my $fornavn = $_[0];
  28.     my $etternavn = $_[1];
  29.    
  30.     # Tar de tre første bokstavene i for og etternavn og setter sammen
  31.     # til et lowercase brukernavn
  32.     my $del1 = substr($fornavn, 0, 3);
  33.     my $del2 = substr($etternavn, 0, 3);
  34.     my $brukernavn = lc($del1.$del2);
  35.    
  36.     # Sjekker om brukernavnet finnes
  37.     if(sjekk_navn($brukernavn) eq "ja"){
  38.         my $i = 1;
  39.        
  40.         # Legger til et tall etter brukernavnet som økes helt til et
  41.         # ledig brukernavn er funnet
  42.         while(sjekk_navn($brukernavn) eq "ja"){
  43.             $brukernavn = $brukernavn.$i;
  44.             $i++;
  45.         }
  46.         return $brukernavn;
  47.     }else{
  48.         return $brukernavn;
  49.     }
  50. }
  51.  
  52. sub pass
  53. {
  54.     my $brukernavn = $_[0];
  55.     my @passord = `/usr/bin/perl shuffle.pl`;
  56.     my $tall = int(rand(9));
  57.     my $pass = $passord[$tall];
  58.     my @user = ($brukernavn, $pass);
  59.     return @user;
  60. }
  61.  
  62. ############## Funksjoner ferdig ##############
  63.  
  64. #$fil = "studenter.txt";
  65. $fil = $ARGV[0];
  66.  
  67. # Åpner fila eller stopper skriptet
  68. open FILE, $fil or die $!;
  69.  
  70. # Leser linje for linje
  71. while(<FILE>){
  72.     # Splitter linjen opp mellom hver kolon og legger det i et array
  73.     @linje = split(/:/);
  74.  
  75.     # Splitter opp navn i fornavn og etternavn
  76.     @navn = split(/,/, $linje[0]);
  77.  
  78.     # Skriver ut ledig brukernavn
  79. #   print gen_bruker($navn[1],$navn[0]);
  80.    
  81.     # Skriver ut ledig brukernavn og sikkert passord
  82.     foreach(pass(gen_bruker($navn[1],$navn[0]))){
  83.         print $_."\n";
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement