1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
#!/usr/bin/perl -w
#variables pour lire les fichiers liste.csv, /etc/passwd et /etc/group.
my $ligne;
my $passwd;
my $group;
#variables pour verifier l'existant.
my $login1;
my $login2;
my $groupe2 = "";
my $i = 1;
my $global;
#variables pour creer les groupes.
my $exist;
my $gidgroup;
my $passgroup;
my $userlist;
my $k = 1;
#variables pour creer l'utilisateur.
my $prenom;
my $nom;
my $login;
my $groupe;
my $pass;
my $crypt;
my $uiduser;
my $giduser;
my $homedir;
my $j = 1;
my $l = 1;
open (LISTE, "<liste.csv") or die "Le fichier liste.csv n'existe pas";
while (my $ligne = <LISTE>){
#Pour affecter les differents parametres de la liste.
$ligne =~ s/"//g;
$ligne =~ s/\n//g;
split(/,/ ,$ligne);
$prenom = $_[0];
$nom = $_[1];
$groupe = $_[2];
$pass = $_[2].$_[1];
$login = $_[0].$_[1];
$exist = "0";
$login1 = $login;
$global = "";
#Pour creer l'utilisateur s'il n'existe pas.
open (RPASSWD, '</etc/passwd') or die "Le fichier /etc/passwd ne peut pas etre lu";
while (my $passwd = <RPASSWD>) {
split(/:/ ,$passwd);
$login2 = $_[0];
$uiduser = $_[2];
$giduser = $_[3];
$j = $uiduser + 1;
$l = $giduser + 1;
if ($login1 eq $login2) {
$login1 = $login;
$login1 = "$login$i";
$i = $i + 1 ;
}
}
close RPASSWD;
open (WPASSWD, '>>/etc/passwd') or die "Le fichier /etc/passwd ne peut pas etre lu";
print WPASSWD "$login1:x:$j:$l::/home/$login:/bin/sh \n";
close WPASSWD;
#Pour creer le groupe s'il n'existe pas.
open (RGROUP,'</etc/group') or die "Le fichier /etc/group ne peut pas etre lu";
while (my $group = <RGROUP>) {
split (/:/ ,$group);
$groupe2 = $_[0];
$passgroup = $_[1];
$gidgroup = $_[2];
$userlist= $_[3];
$k = $gidgroup + 1;
$global = "$global$group";
if ($groupe eq $groupe2){
$exist = "1";
chop($global);
chop($global);
$global = "$global,$login1 \n";
}
}
close RGROUP;
if ($exist eq "1" ){
open (WGROUP, '>>/etc/group') or die "Le fichier /etc/group ne peut pas etre lu";
print WGROUP $global;
close WGROUP;
}
else {
open (WGROUP, '>>/etc/group') or die "Le fichier /etc/group ne peut pas etre lu";
print WGROUP "$groupe:x:$k:$login1 \n";
close WGROUP;
}
#Pour ajouter le mot de passe.
open (WMDP, '>>/root/mdp.txt') or die "Le fichier /root/mdp.txt ne peut pas etre lu";
print WMDP $pass;
close WMDP;
open (WSHADOW, '>>/etc/shadow') or die "Le fichier /etc/shadow ne peut pas etre lu";
$crypt= crypt('$pass','$1$');
print WSHADOW "$login1:$crypt:13896:0:99999:7::: \n";
close WSHADOW;
}
close LISTE; |
Partager