Ajout d utilisateur

bonjour j ai un petit problème sur le script :laughing: :laughing: que je n arrive pas a resoudre :mrgreen:
quand je viens a exécuter le script il me dit

line 26: syntaxe error: unexpected end of file

voici le code

[code]
cat persons | while true
do
read ligne
if [ “$ligne” == “” ]
then
echo “fin du fichier”
break
fi
set – $ligne
login=$1
pass=$2

if [ -d “/home/$1” ]
then
echo “le compte $1 existe déjà”
else
echo “création du compte $login”
useradd -m $login -G $1 -s /bin/bash
echo $login:$pass | chpasswd
(echo $pass ; echo $pass) | smbpasswd -s -a $login
chown $login:$groupe /home/$login
chmod 711 /home/$login
chown -R $login:$login /home/$login

done
echo “fin du script”[/code]

merci de votre aide

if [ cond ]; then else fi :wink:

je ne voie pas tres bien ou je doit le rajouter :open_mouth: je debut :laughing:

avant le done

avant home tu veux dire mais a quel endroit exactement

Juste avant le mot done

[code]
cat persons | while true
do
read ligne
if [ “$ligne” == “” ]
then
echo "fin du fichier"
break
fi
set – $ligne
login=$1
pass=$2

if [ -d “/home/$1” ]
then
echo "le compte $1 existe déjà"
else
echo "création du compte $login"
useradd -m $login -G $1 -s /bin/bash
echo $login:$pass | chpasswd
(echo $pass ; echo $pass) | smbpasswd -s -a $login
chown $login:$groupe /home/$login
chmod 711 /home/$login
chown -R $login:$login /home/$login
fi
done
echo “fin du script”[/code]c’est si compliqué ?

fonctionne presque j ai 2 OU 3 truc a modifier mais encore merci a vous tous
non :laughing: c est juste que j avais supprimer le done donc je n arrivais pas a le voire :laughing: :laughing:

bonjour

j ai un derniere petit probleme que jen arrive pas a resoudre j essaye de faire fonctionner le script mais quand je viens a l appeler sa me dit.

[code][I]creation du compte olivier
useradd: option invalide – a
Usage: useradd [options] LOGIN

Options:
-b, --base-dir BASE_DIR base directory for the new user account
home directory
-c, --comment COMMENT set the GECOS field for the new user account
-d, --home-dir HOME_DIR home directory for the new user account
-D, --defaults print or save modified default useradd
configuration
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, --gid GROUP force use GROUP for the new user account
-G, --groups GROUPS list of supplementary groups for the new
user account
-h, --help display this help message and exit
-k, --skel SKEL_DIR specify an alternative skel directory
-K, --key KEY=VALUE overrides /etc/login.defs defaults
-m, --create-home create home directory for the new user
account
-o, --non-unique allow create user with duplicate
(non-unique) UID
-p, --password PASSWORD use encrypted password for the new user
account
-r, --system create a system account
-s, --shell SHELL the login shell for the new user account
-u, --uid UID force use the UID for the new user account

chpasswd : ligne 1 : utilisateur olivier inconnu
chpasswd : erreur détectée ; modifications ignorées
New SMB password:
[/I][/code]

le corps du script

[code][I]
#!/bin/sh
cat persons | while true
do
read ligne
if [ “$ligne” == “” ]
then
echo "fin du fichier"
break
fi
set – $ligne
login=$1
pass=$2

if [ -d “/etc/samba/$1” ];then

echo "le compte $1 exisetdeja"

else

echo "creation du compte $login"
useradd -a  $login -G $1 -s /etc/samba
echo $login:$pass | chpasswd
(echo $pass ; echo $pass) | smbpasswd  -a $login
chown $login:$groupe /etc/samba/smbpasswd
 chmod 711 /etc/samba/smbpasswd
chown -R $login:$login /etc/samba/smbpasswd

fi

done
echo “fin du script”[/I][/code]

merci de votre aide a tous !!!

Lis le message d’erreur, il dit le problème…

oui jai trouver
j ai encore un petit probleme

le dernier probleme c qu il n ajoute pas l utilisateur dans le fichier smbpasswd et la je n arrive vraiment pas a trouver.

debian:/etc/samba# ./salut ./salut: line 14: [: testt: unary operator expected creation du compte testt useradd : groupe testt inconnu New SMB password: Retype new SMB password: fin du fichier fin du script

Ton message d’erreur dis bien que ça n’a rien à voir avec samba. Par contre il est peut être judicieux de regarder ce qu’il te dis (genre à la ligne 14), il est même probable que ce soit un problème lié à l’opérateur qui s’y trouve.

Peut être qu’on pourras t’aider quand tu nous montreras ce qui se trouve ligne 14.

voici le script pardon

[code]#!/bin/sh
cat persons | while true
do
read ligne
if [ “$ligne” == “” ]
then
echo "fin du fichier"
break
fi
set – $ligne
login=$1
pass=$2

if [ $1 “/etc/samba” ];then

echo "le compte $1 exiset deja"

else

#useradd -g $1 -s /usr/sbin$login
echo "creation du compte $login"
useradd -g $1 -a /usr/sbin/ $login

(echo $login:$pass) | smbpasswd

(echo $pass ; echo $pass) | smbpasswd -a $login

fi

done
echo “fin du script”
[/code]

Donc ligne 14

donc si $1 contient par exemple “MrFreez” (puisque il semble, d’après la ligne 11, que ce soit un login), tu va tenter d’executer :

Ça donne quoi d’après toi ?

ce qu il aut que je fasse c est

if [ $1 == "/etc/samba/utilisateur" ];then

sa fonctionne ile ne me reste plus que le probleme :confused: que maintenant il veut m ajouter un groupe je m explique

dans le fichier persons je rentre les nom des utilisateur a ajouter .mais quand j execute le script ile me dit
se qui me bloque c est la creation du groupe florian “qui est la variable $1”

creation du compte florian useradd : groupe florian inconnu New SMB password:

encore merci a vous tous :smiley: :smiley:

Elle fait quoi l'option -g ? (cf ton post plus haut)
Le message d'erreur est encore une fois très clair.

Ensuite pour ton test je doute qu'un jour tu te retrouve avec un utilisateur dont le login est "/etc/samba/utilisateur". Bref ton test a un problème. Qu'est ce que c'est que ce fichier "/etc/samba/utilisateur" ? (je ne connais pas samba)

Elle fait quoi l’option -g ? (cf ton post plus haut)
Le message d’erreur est encore une fois très clair.

Ensuite pour ton test je doute qu’un jour tu te retrouve avec un utilisateur dont le login est “/etc/samba/utilisateur”. Bref ton test a un problème. Qu’est ce que c’est que ce fichier “/etc/samba/utilisateur” ? (je ne connais pas samba)

samba se trouve dans /etc/samba
dans le repertoire samba j ai cree un fichier ou il y a les utilisateur
le nom de se fichier c est “utilisateur”

Donc tu veut tester s’il existe le fichier /etc/samba/$login donc :

:wink:

le probleme a [b]etais/b [b]resolue/b, je posterais le script ce soir encore merci a vous tous pour votre aide !! :smt003 :smt003 :smt003 :smt003 :smt006 :smt006

[edit par ashgenesis]Faites attention à l’orthographe merci[/edit]