Useradd
Résolu
Bonjour,
Voilà, je vous explique rapidement, j'ai un pbm avec la création d'un utilisateur avec la commande useradd
il me met
Voilà, je vous explique rapidement, j'ai un pbm avec la création d'un utilisateur avec la commande useradd
useradd -d /home/$nameUser -m -g 1000 -s /bin/bash $nameUser
il me met
operateur binaire attendu
9 réponses
-
Personnellement j'aurais plutôt écrit un truc du genre :
#!/bin/sh user="toto" if [ $(grep -c "^$user:" /etc/passwd) -eq 0 ] ; then echo "add" else echo "Cet utilisateur existe déjà" >&2 fi
Bonne chance -
À mon avis c'est ta variable $nameUser qui contient n'importe quoi.
(root@aldur) (~) # useradd -d /home/tata -m -g 1000 -s /bin/bash tata (root@aldur) (~) # grep tata /etc/passwd tata:x:1006:1000::/home/tata:/bin/bash
Bonne chance -
CreateUser () { echo "Nom du nouvel utilisateur"; read nameUser; if [ Existe user $nameUser ] then echo "Cet utilisateur existe déjà !" else sudo useradd -d /home/$nameUser -m -g 1000 -s /bin/bash $nameUser fi }
Je vois pas l'erreur. Dsl -
À première vue ça à l'air correct.
(root@aldur) (~) # read nameUser tata (root@aldur) (~) # echo [$nameUser] [tata] (root@aldur) (~) # useradd -d /home/$nameUser -m -g 1000 -s /bin/bash $nameUser (root@aldur) (~) # grep tata /etc/passwd tata:x:1001:1000::/home/tata:/bin/bash
Tu as peut-être un caractère invisible sur la ligne comportant useradd, essaye de l'effacer et de la retaper.
Si je peux me permettre, attribuer le groupe primaire 1000 à un utilisateur n'est pas forcément une idée géniale car ce groupe correspond souvent au groupe primaire du premier utilisateur créé sur la machine. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
je sais mais c'est un script que je fais pour les cours donc ca a pas énormément d'importance
En tout cas, merci ! -
C'était bien un caractère invisible ? Parce que l'initialisation de $userName semble correct (à vérifier avec un echo [$userName]).
-
J'ai toujours l'erreur, je pense qu'elle vient de ma fonction de test de l'existence de l'utilisateur ou de son appel.
Je regarderais ca quand j'aurais 5 minutes !
Existe () { case "$1" in "user") grep "^$2:" /etc/passwd > /dev/null && return 0 return 1 ;; "group") grep "^$2:" /etc/group > /dev/null && return 0 return 1 ;; *) echo "Option incorrecte." ;; esac } -
Je viens de trouver d'où vient cette erreur.
J'ai remplacé les crochets par des parenthèses et là miracle, plus d'erreur ! -
J'ai mon message d'hier soir qui est passé à la trappe, tu peux écrire ton test plus simplement grâce à l'option -c :
user=mando if [ $(grep -c "^$user:" /etc/passwd) -eq 0 ] ; then echo "add" else echo "Cet utilisateur existe déjà" >&2 fi
Bonne chance