diff --git a/Sio1/SISR1/40-BashEtShell/crsambaFini b/Sio1/SISR1/40-BashEtShell/crsambaFini new file mode 100755 index 0000000..4c129e9 --- /dev/null +++ b/Sio1/SISR1/40-BashEtShell/crsambaFini @@ -0,0 +1,34 @@ +#!/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