Ajout d'utilisateur a Samba

bonjour
j’essaye de créer un script shell pour ajouter mes utilisateur a samba.
il se trouve que j ai un pti probléme mon script doit demander à l’utilisateur le nom de la personne si le nom viens a exister alors il lui demande de saisir un autre nom autrement il créer le compte .

[code]echo “selectionner le nom de l’utilisateur à ajouter”
read $login
#if
grep “$1” /etc/passwd > /dev/null

une commande Unix prend 0 quand son résultat est positif

if [ $? -eq 0 ];then
echo “le comptte vas etre créer”
else
echo “l’utilisteur existe déja”
echo “saisir un autre nom”
read $login
grep “$1” /etc/passwd > /dev/null
fi
[/code]
le probléme c’est que quand je l’execute il ne vas pas vérifier dans passwd voir si le compte existe et j arrive pas à trouver.

merci de votre aide à tous :smt006 :exclamation:

Bonjour,

Ta commande read est incorrecte, c’est read login sans le $ devant login.

Ton commentaire "# une commande Unix prend 0 quand son résultat est positif " est mal interpreté.

Un resultat positif pour la commande grep est que l’expression a été trouvé. Donc le resultat doit etre different de zero pour que le compte soit créé.

Ta commande grep est incorrecte, tu dois appele $login et non $?. Par securité, je ferais le grep comme ceci : grep "^$login:" /etc/passwd > /dev/null

Je ferais une boucle et tant que le nom d’utilisateur dans /etc/passwd existe alors pas de création du compte.

pour la boucle j etait déja entrain de la faire :smiley:
juste une derniere question pourquoi “^login:” pourquoi le "^"
encore merci

Bonjour,

Les noms de compte dans le fichier /etc/passwd sont entre le debut de ligne et :.

Le ^ signifie début ligne.

Voici une page qui te donnera quelques infos sur les expressions reguliere : fr.wikipedia.org/wiki/Expression … _sed_et_vi

j essaye d’incorporé dans mon script cette ligne de commande pour dire que l’utilisateur n’a pas de mot de passe, mais quand j’execute le script voici ce qu’il me dit
passwd: option non reconnue « --stdin »
Usage: passwd [options] [LOGIN]

je cherche sur le net mais j ai vraiment du mal à trouver un truc pour m’aider

le code :

useradd $login -g sambafic -b /home/Samba/$login echo "$mdp" | passwd --stdin "$login"

j ai trouver :laughing: je poserais le script dans la session script dans pas longtemps encore merci à tout le monde