# Ajout d utilisateur

**URL:** <https://www.debian-fr.org/t/ajout-d-utilisateur/14203>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203 "2016-02-20T17:42:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/1 "2016-02-20T17:42:35Z")

</div>

bonjour j ai un petit problème sur le script 😆😆 que je n arrive pas a resoudre ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")  
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

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/2 "2016-02-20T17:42:36Z")

</div>

`if [cond]; then
else
fi` 😉

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/3 "2016-02-20T17:42:37Z")

</div>

je ne voie pas tres bien ou je doit le rajouter 😮 je debut 😆

---

<div class="post-metadata">

**Author:** ![themorice](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c89c15/32.png) [@themorice](https://www.debian-fr.org/u/themorice)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/4 "2016-02-20T17:42:38Z")

</div>

avant le done

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/5 "2016-02-20T17:42:38Z")

</div>

avant home tu veux dire mais a quel endroit exactement

---

<div class="post-metadata">

**Author:** ![themorice](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c89c15/32.png) [@themorice](https://www.debian-fr.org/u/themorice)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/6 "2016-02-20T17:42:38Z")

</div>

> [@](#):
>
> avant le done

Juste avant le mot done

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/7 "2016-02-20T17:42:39Z")

</div>

[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é ?

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/8 "2016-02-20T17:42:39Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/9 "2016-02-20T17:42:41Z")

</div>

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 !!!

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/10 "2016-02-20T17:42:49Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/11 "2016-02-20T17:42:50Z")

</div>

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
`

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/12 "2016-02-20T17:42:52Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/13 "2016-02-20T17:42:53Z")

</div>

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]

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/14 "2016-02-20T17:42:53Z")

</div>

Donc ligne 14

```auto

```

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 :

```auto

```

Ça donne quoi d’après toi ?

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/15 "2016-02-20T17:42:54Z")

</div>

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 😕 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 😃😃

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/16 "2016-02-20T17:42:58Z")

</div>

```auto
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)

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:42 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/17 "2016-02-20T17:42:59Z")

</div>

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”

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 5:43 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/18 "2016-02-20T17:43:00Z")

</div>

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

```auto

```

😉

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 5:43 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/19 "2016-02-20T17:43:03Z")

</div>

```auto

```

---

<div class="post-metadata">

**Author:** ![zyriuse](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/49beb7/32.png) [@zyriuse](https://www.debian-fr.org/u/zyriuse)\
**Post date:** [Février 20, 2016, 5:44 UTC](https://www.debian-fr.org/t/ajout-d-utilisateur/14203/20 "2016-02-20T17:44:01Z")

</div>

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](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif) ![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

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