Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 07 Dec 2009 18:26:17

zepeto
Affranchi(e)
 
Date d'inscription: 07 Dec 2009
Messages: 4

création utilisateurs

Bonjour, je commence avec bash et j'ai voulu créer un script pour automatiser la création de mes utilisateurs apache2 et proftpd.

#!/bin/bash
# SCRIPT creautil.sh
# ================
# Création automatique des comptes d'apres le fichier eleves.txt
# appel : ./creautil.sh [eleves.txt]
# ================



fich=$1 # fichier pointe vers le premier parametre.

if [ -e $1 ] # on vérifie si le fichier entré en paramêtre existe
    then # alors
        while read ligne # Boucle “TanQue” pour parcourir chaque ligne
            do # faire
                pre=$(echo $ligne | cut -d: -f1) # pre reçoit la 1ere partie de la ligne séparée par “ : ”
                nom=$(echo $ligne | cut -d: -f2) # nom reçoit la 2eme partie de la ligne séparée par “ : ”
                groupe=$(echo $ligne | cut -d: -f3) # groupe reçoit la 3eme partie de la ligne séparée par “ : ”
                login=$pre"."$nom
                mdp=$(pwgen 5 1) #on génère un mot de passe aléatoire avec l’outil pwgen (5 étant le nombre de caractères, 1 étant le nb de mot de passe a générer)
                echo $mdp
                echo $login":"$mdp >> comptes.txt # on écrit le login et mot de passe dans comptes.txt
                echo -e "$mdp\n$mdp" | useradd -d /home/ftp -g $groupe -s /bin/false $login #création du compte ftp
                echo -e "$mdp\n$mdp" | htpasswd /var/www/passwdfile $login #création du compte apache
            done < $fich # iteration pour passer à la ligne suivante
    else # sinon

        echo "fichier $1 non trouve" # affiche message d'erreur lorsque l'on ne trouve pas le fichier ou se trouve les “prenom:nom:groupe”

fi

Lorsque j'exécute mon code il me dit que j'ai une erreur à la ligne en rouge ($fich ambigu)
j'ai chercher sur internet, j'ai tenté plusieurs manipulation sans succès.
Merci pour votre aide

Dernière modification par zepeto (07 Dec 2009 18:56:08)

Hors ligne

 

#2 07 Dec 2009 18:50:30

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: création utilisateurs

Salut,
le dièse de la couleur est forcément pris comme un commentaire, il faudra bien un caractère d'échappement...


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#3 07 Dec 2009 18:57:20

zepeto
Affranchi(e)
 
Date d'inscription: 07 Dec 2009
Messages: 4

Re: création utilisateurs

Concernant la couleur c'est réparer c'était juste une erreur d'inattention de ma par mais ce n'était pas le cas sur mon serveur.

Hors ligne

 

#4 07 Dec 2009 20:39:55

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: création utilisateurs

essaie

Code:

done < "$fich"

Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#5 08 Dec 2009 19:38:14

zepeto
Affranchi(e)
 
Date d'inscription: 07 Dec 2009
Messages: 4

Re: création utilisateurs

Merci pour ton aide.
Après avoir apporter ta modification j'obtien ceci :

./creautil.sh: line 30: : Aucun fichier ou répertoire de ce type

ligne 30 il y a le fi
Si tu as une autre idée merci...

Dernière modification par zepeto (08 Dec 2009 19:39:40)

Hors ligne

 

#6 08 Dec 2009 19:56:55

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: création utilisateurs

tu as écris

Code:

if [ -e $1 ] # on vérifie si le fichier entré en paramêtre existe
    then

mais un if s'écrit:

Code:

if [ -e $1 ]; # on vérifie si le fichier entré en paramètre existe
    then

t'as oublié le ';' après le test [  ]


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#7 08 Dec 2009 20:04:43

zepeto
Affranchi(e)
 
Date d'inscription: 07 Dec 2009
Messages: 4

Re: création utilisateurs

Je n'ai jamais mis de ; à la fin d'un si en bash enfin peu être car je ne suis pas spécialiste.
Cependant cela ne change rien à mon message d'erreur.
J'ai rajouter des echo un peut partout dans mon code pour voir vers ou il s'arrête et j'ai l'impression qu'il bloque sur ma boucle...
Merci pour votre aide.

Hors ligne

 

#8 08 Dec 2009 20:13:34

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: création utilisateurs

J'ai dis une bêtise en fait.. le ';' est nécessaire seulement si le then est sur la même ligne..

Code:

if [...]; then

EDIT: bon j'ai testé alors ton script.. mais j'ai commenté les lignes pwgen, useradd, et htpasswd et la boucle fonctionne correctement.


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

Pied de page des forums

Powered by FluxBB