VEUILLEZ PRENDRE NOTE DE LA REMARQUE DANS LE CODE APRES FI! Pour la création d'un compte utilisateur via le navigateur, je laisse php shell_exec exécuter un script bash. Même si je suis certain (en vérifiant/etc/shadow) que le nom d'utilisateur n'est pas pris, le script le dit. Le script tel qu'il est actuellement exécute la commande useradd et le nom d'utilisateur apparaît dans/etc/shadow. On dirait qu'il exécute le useradd avant, puis vérifie si l'utilisateur existe?Le script bash renvoie l'utilisateur existant mais l'utilisateur n'existe pas
php
$command = "sudo ./createclientcert.sh $userName $userPass";
if(shell_exec("$command echo $?") == 0){
echo 1;
}
shellscript
#!/bin/bash
newclient() {
getent passwd $1 > /dev/null 2&>1
if [ $? -eq 0 ]; then
echo $?
else
useradd $1
echo $1:$2 | chpasswd
fi
# PLEASE TAKE NOTE!! funny thing is that when code (that had nothing to do with the account creation and was to be removed) that came after fi is in place it works well.
}
newclient "$1" "$2"
'getent passwd $ 1>/dev/null 2 &> 1' ne peut pas être correct. Il aurait dû être 'getent passwd $ 1>/dev/null 2> & 1' – sjsam
Aussi, ne devrait pas' shell_exec ("$ comm echo $?") 'Ont été' shell_exec ("$ command echo $?") ' ?? – sjsam
@sjsam $ comm était une faute de frappe. Désolé. en effet 2 &> 1 devrait être 2> & 1 quand je googlecheck rapidement, mais je l'ai copié et collé à partir d'un autre poste. –