#!/bin/bash #set -e #set -u if [[ $# -ne 1 ]] ; then echo "usage : $0 " #nombre de paramètre != 1 on sort du programme. exit 1 fi if [[ ! -r "$1" ]] ; then echo "$0 : erreur ouverture ${fich}" # erreur ouverture du fichier on sort du programme. exit 2 fi fich=$1 while read ligne #lecture par ligne du fichier do echo "$ligne" | grep "^#" >> /dev/null && continue #ignore les ligne commentes dans le fichier [[ -z "$ligne" ]] && continue #ignore les lignes vides login=$(echo "${ligne}"|cut -d: -f1) #recuperation login nom=$(echo "${ligne}"|cut -d: -f2) #recuperation nom long #echo "${login} ${nom}" getent passwd "${login}" >> /dev/null if [[ $? -ne 0 ]] ; then # si utilisateur inexistant on peut creer sudo useradd --create-home --home-dir /home/"${login}" --shell /bin/bash --comment "${nom}" "${login}" # creation utilisateur mdp=$(pwgen 6 1) # creation mot de passe #echo "${mdp}" echo "${login}:${mdp}"|chpasswd #affectation mot de passe utilisateur echo "${login}:${mdp}" >> "${fich}.pwd" #stocke mot de passe dans fichier else echo "$0 : utilisateur ${login} existe deja" fi done < $fich