#!/bin/bash #set -e #set -u if [[ $# -ne 1 ]] ; then echo "usage : $0 " # nombre de parametres != 1, sortie exit 1 fi if [[ ! -r "$1" ]] ; then echo "$0 : erreur ouverture fichier ${fich}" # erreur ouverture fichier, sortie exit 2 fi fich=$1 while read ligne # lecture ligne a ligne do echo "$ligne" | grep "^#" >> /dev/null && continue # ignore commentaires [[ -z "$ligne" ]] && continue # ignore lignes vides login=$(echo "${ligne}"|cut -d: -f1) # recuperation login long=$(echo "${ligne}"|cut -d: -f2) # recuperation nom complet #echo "${login} ${long}" getent passwd "${login}" >> /dev/null if [[ $? -ne 0 ]] ; then # pas trouve, on peut le creer useradd --create-home --home-dir /home/"${login}" --shell /bin/bash --comment "${long}" "${login}" # creation utilisateur passwd=$(pwgen 6 1) echo "${login}:${passwd}"|chpasswd # affectation mot de passe utilisateur echo "${login}:${passwd}" >> "${fich}.pwd" # enregistrement dans fichier else echo "$0 : utilisateur ${login} existant" fi done < "${fich}"