Bonjour
Pour démarrer l’année scolaire, je dois ajouter plusieurs centaines d’utilisateurs “élèves” sur mon serveur d’authentification.
J’utilise, pour ce faire, un script qui lit un fichier CSV contenant les informations nécessaires:
username
nom réel
mot de passe
groupe
Le script fonctionne plutôt bien puisque les utilisateurs sont parfaitement créés avec leur répertoire personnel et leur groupe.
Le souci vient de l’encryptage des mots de passe pour /etc/passwd qui ne se fait pas correctement bien que la forme desdits mots de passe semble correcte: :$1$evMmXOwB$FdN5vD9oYrHL42JgPpHCG1 , par exemple.
J’imagine donc que la fonction PHP script() que j’utilise n’est pas la bonne fonction ou que je l’utilise mal.
Ci-dessous, une version un peu nettoyée du script:
[code]<?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]);
…
// ++++++++++++++++++++++++++++++++++++++++
// 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++;
}
?>[/code]
Quelqu’un pourrait-il me mettre sur la bonne voie?
Merci pour toute réaction.

. Et la commande mkpasswd y est tout à fait différente.
