Script création utilisateur
Bonjour,
J'ai un srcipt shell, plus précisément bash qui me permet de créer mes utilisateurs samba.
il prend les données saisies dans le fichier eleves.txt pour créer les comptes puis il génére un fichier comptes.txt qui contient les login et password des utilisateurs créés.
Voila mon script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| # !/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
useradd -d /srv/samba/home/$login -m -s /bin/false -G $groupe $login # création du compte unix : création du /home de l'utilisateur, avec interdiction de se connecter en ligne de
commande via le "/bin/false", avec ajout du groupadd sur la même ligne de commende via le "-g", le "-s" permet le mode silencieux de la commande
echo -e "$mdp\n$mdp" | smbpasswd -a -s $login # création compte samba avec affectation du echo dans la commande smbpasswd "\n" permet le retour chariot double de smbpasswd
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 |
Pour info mon script creautil.sh et mon fichier eleves.txt se trouvent dans le même répertoire.
Toutefois, lorsque j'exécute mon script il me retourne ça :
Code:
1 2
| srvdebian:~# ./creautil.sh
./creautil.sh: line 28: $fich: ambiguous redirect |
Quelqu'un à une idée pour résoudre ce problème ?
Merci