#!/bin/bash #set -e #set -u if [[ $# -ne 1 ]] ; then echo "usage : $0 " # si différent de 1 alors on sortira exit 1 fi if [[ ! -r $1 ]] ; then echo "$0 : erreur ouverture fichier $1" # ce n'est pas le bon fichier donc on sortira du script exit 2 fi fich=$1 while read ligne #lecture du fichier de lignes en lignes do echo "$ligne" | grep "^#" >> /dev/null && continue #ceci va ignorer les lignes commentés [[ -z "$ligne" ]] && continue #ceci va ignorer les lignes vides login=$(echo "${ligne}" |cut -d ':' -f 1) # récupèration du login nom=$(echo "${ligne}" |cut -d ':' -f 2) # récupèration du nom getent passwd "${login}" >> /dev/null #génération du mot de passe if [[ $? -ne 0 ]] ; the # si aucun compte est trouvé alors on le crée sudo useradd --create-home --home-dir /home/"${login}" --shell /bin/bash --comment "${nom}" "${login}" #création de l'utilisateur mdp=$(pwgen 6 1) # création du mot de passe possédant au moins 6 caracteres echo "${login}:${mdp}" | chpasswd #le mot de passe a été ajouté à un utilisateur echo "${login}:${mdp}" >> "${fich}.pwd" #les mots de passes sont stockés dans le fichier users.txt.pwd else echo "$0 : user ${login} existant" fi done < $fich