Nous sommes le Jeu 25 Avr, 2024 12:34
Supprimer les cookies

Enrôlement en masse d'utilisateurs Edubuntu [Résolu]

Le choix d'Ubuntu pour mes premiers pas Linux

Dim 07 Sep, 2008 10:22

Bonjour
Pour enrôler plus d'un millier d'utilisateurs dans un réseau Edubuntu, j'utilise un script en PHP.
Le script fonctionne parfaitement si l'on excepte le fait que les mots de passe ne sont pas correctement définis dans /etc/shadow.
En fait, j'ignore comment encoder les mots de passe qui figurent en clair dans le fichier CSV contenant toutes les informations:
nom d'utilisateur
nom réel
mot de passe
groupe

Voici le script dans l'état
Code: Tout sélectionner
<?php
$eleves=file('eleves2008.csv');

// lecture ligne par ligne du fichier CSV => $eleves[]
foreach($eleves as $key => $unEleve){
   $line = explode(',',rtrim($unEleve));
   if($line[0]!='""')
      $eleves[$key]=$line;
   }

$listeclasses=array();
$n=0;
$nombreEleves = count($eleves);
while($n < $nombreEleves)
   {
   // suppression des guillemets du CSV
   $user=str_replace("\"",'',$eleves[$n][0]);
   $mdp=str_replace("\"",'',$eleves[$n][1]);
   $nom=str_replace'"\"", '', $eleves[$n][2]);
   $classe=str_replace("\"",'',$eleves[$n][3]);
   
   // creation du groupe et du repertoire de la classe
   if((!in_array($classe,$listeclasses) AND $classe!=""))
      {
      system ("/usr/sbin/groupadd $classe");
      system("mkdir /home/eleves/$classe");
      system("chown root:$classe /home/eleves/$classe");
      $listeclasses[]=$classe;
      }
   // cryptage du mot de passe
   // NE FONCTIONNE PAS!!!
   $crpassword = crypt($mdp);
   // NE FONCTIONNE PAS!!!

   $todo = "/usr/sbin/useradd $user -g $classe -m -c $nom ";
   $todo .= "-p $crpassword -d /home/eleves/$classe/$user -k /etc/squelette";
   system($todo);

   system ("chown -R $user:$classe /home/eleves/$classe/$user");
   
   // mise à jour de NIS
   system ("make -C /var/yp");
   $n++;
   }
?>


La fonction "crypt" renvoie bien un mot de passe crypté qui ressemble à ce qu'il devrait être: quelque chose comme :$1$evMmXOwB$FdN5vD9oYrHL42JgPpHCG1
Mais l'utilisateur ne peut pas s'identifier.
Il suffit de faire une modification manuelle du mot de passe
# passwd machin
pour que tout fonctionne.
Le problème est donc bien dans la fonction "crypt" qui ne fait pas le travail que je crois.

Merci pour toute suggestion.
ymai

Messages : 371
Géo : Brüsel - Les Cités Obscures (BE)

Dim 07 Sep, 2008 22:13

Résolu avec la commande newusers et abandon du script.
ymai

Messages : 371
Géo : Brüsel - Les Cités Obscures (BE)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit