Bonjour à tous,
J'ai un petit soucis de grep avec la commande system(), si quelqu'un aurait une idée?
Merci d'avance.
Dans un problème, je souhaite crée un compte utilisateur via la commande adduser sous unbuntu.
Dans le cas ou l'identifiant existe déjà dans /etc/passwd, je reboucle pour que l'utilisateur rentre un autre login.
Il faut que je fasse un grep stricte, c'est à dire que si un utilisateur "toto" est présent dans /etc/group, on a la possibilité de crée un utilisateur "to", si l'utilisateur rentre un login correcte l'utilisateur rentrera un mot de passe.
$accountcreated="false";
while ($accountcreated eq "false" ){
print("Please enter your login:" );
$login = <STDIN>;
$test="grep ^$login: /etc/passwd";
system ($test);
print $?;
if ($?==0){
$accountcreated="false";
}else{
$accountcreated="true";
}
print $accountcreated;
}
Deuxieme problème:
Pour la saisie du mot de passe, je n'arrive pas a supprimer la sortie standard, j'ai toujours les messages qui disent que le mot de passe a bien été saisie, c'est le retour de la commande passwd user.
open (PASSWD, "| passwd $login 2>&1 /home/test/test.log" );
print PASSWD "$password";
print PASSWD "$password";
close (PASSWD);