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 :
Pour info mon script creautil.sh et mon fichier eleves.txt se trouvent dans le même répertoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Toutefois, lorsque j'exécute mon script il me retourne ça :
Quelqu'un à une idée pour résoudre ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 srvdebian:~# ./creautil.sh ./creautil.sh: line 28: $fich: ambiguous redirect
Merci
Partager