Useradd
Résolu/Fermé
Harrys
-
Modifié par Harrys le 19/01/2011 à 23:02
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 21 janv. 2011 à 00:05
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 21 janv. 2011 à 00:05
A voir également:
- Useradd command not found
- Operating system not found ✓ - Forum Matériel & Système
- No renderer found - Forum Lecteurs et supports vidéo
- Gcc command not found ✓ - Forum Linux / Unix
- Not found the requested url was not found on this server. ✓ - Forum Ubuntu
- Useradd commande introuvable ✓ - Forum Debian
9 réponses
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
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
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
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
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
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
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
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
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
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