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