Useradd
Résolu/Fermé
Harrys
-
Modifié par Harrys le 19/01/2011 à 23:02
mamiemando Messages postés 33443 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 décembre 2024 - 21 janv. 2011 à 00:05
mamiemando Messages postés 33443 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 décembre 2024 - 21 janv. 2011 à 00:05
A voir également:
- Bash: adduser : commande introuvable
- Smbldap-useradd - Forum Linux / Unix
- Useradd commande introuvable ✓ - Forum Shell
9 réponses
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
20 janv. 2011 à 00:46
20 janv. 2011 à 00:46
Personnellement j'aurais plutôt écrit un truc du genre :
Bonne chance
#!/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
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
19 janv. 2011 à 23:04
19 janv. 2011 à 23:04
À mon avis c'est ta variable $nameUser qui contient n'importe quoi.
Bonne chance
(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
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
19 janv. 2011 à 23:16
19 janv. 2011 à 23:16
À première vue ça à l'air correct.
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.
(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 !
En tout cas, merci !
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
19 janv. 2011 à 23:22
19 janv. 2011 à 23:22
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 !
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 remplacé les crochets par des parenthèses et là miracle, plus d'erreur !
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
21 janv. 2011 à 00:05
21 janv. 2011 à 00:05
J'ai mon message d'hier soir qui est passé à la trappe, tu peux écrire ton test plus simplement grâce à l'option -c :
Bonne chance
user=mando if [ $(grep -c "^$user:" /etc/passwd) -eq 0 ] ; then echo "add" else echo "Cet utilisateur existe déjà" >&2 fi
Bonne chance