Swisslinux.org

− The GNU/Linux crossroads in Switzerland −

 

Language

 

The Forum

You are not logged in.

#1 07 Dec 2009 18:26:17

zepeto
Affranchi(e)
 
Registered: 07 Dec 2009
Posts: 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

Last edited by zepeto (07 Dec 2009 18:56:08)

Offline

 

#2 07 Dec 2009 18:50:30

[GO]Skywalker13
Modérateur
From: Choëx (VS)
Registered: 05 Oct 2004
Posts: 890
Website

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

Offline

 

#3 07 Dec 2009 18:57:20

zepeto
Affranchi(e)
 
Registered: 07 Dec 2009
Posts: 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.

Offline

 

#4 07 Dec 2009 20:39:55

[GO]Skywalker13
Modérateur
From: Choëx (VS)
Registered: 05 Oct 2004
Posts: 890
Website

Re: création utilisateurs

essaie

Code:

done < "$fich"

Mathieu SCHROETER
log.schroetersa.ch

Offline

 

#5 08 Dec 2009 19:38:14

zepeto
Affranchi(e)
 
Registered: 07 Dec 2009
Posts: 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...

Last edited by zepeto (08 Dec 2009 19:39:40)

Offline

 

#6 08 Dec 2009 19:56:55

[GO]Skywalker13
Modérateur
From: Choëx (VS)
Registered: 05 Oct 2004
Posts: 890
Website

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

Offline

 

#7 08 Dec 2009 20:04:43

zepeto
Affranchi(e)
 
Registered: 07 Dec 2009
Posts: 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.

Offline

 

#8 08 Dec 2009 20:13:34

[GO]Skywalker13
Modérateur
From: Choëx (VS)
Registered: 05 Oct 2004
Posts: 890
Website

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

Offline

 

Board footer

Powered by FluxBB