Bonjourà tous!
Voila, je suis e, TP et je n'arrive pas à finaliser mon code .
Je m'appuie sur Xdialog et je cherche à ajouter un nouvel utilisateur !
Voici mon code :
---------------------------------------------------------------------------------------------------------------------------------------------
new_user() {
username=`tempfile 2>/dev/null` || username=/tmp/test$$
trap "rm -f $username" 0 1 2 5 15
homedir=`tempfile 2>/dev/null` || homedir=/tmp/test$$
trap "rm -f $homedir" 0 1 2 5 15
skeldir=`tempfile 2>/dev/null` || skeldir=/tmp/test$$
trap "rm -f $skeldir" 0 1 2 5 15
shell=`tempfile 2>/dev/null` || shell=/tmp/test$$
trap "rm -f $shell" 0 1 2 5 15
expiration=`tempfile 2>/dev/null` || expiration=/tmp/test$$
trap "rm -f $expiration" 0 1 2 5 15
editor=`tempfile 2>/dev/null` || editor=/tmp/test$$
trap "rm -f $editor" 0 1 2 5 15
Xdialog --title "Nouvelle utilisateur - Login -" --clear \
--inputbox "Entrez le login du nouvel utilisateur :" 16 51 2> $username
if [ -z $username ]; then
Xdialog --msgbox 'Vous devez donner un nom à l'utilisateur' 0 0
exit 0
fi
if [ -x cat /etc/passwd | cut -d: -f1 | grep $username ]; then
Xdialog --msgbox 'L'utilisateur saisi existe déjà !' 0 0
exit 0
fi
Xdialog --title "Nouvelle utilisateur - Répertoire personnel -" --clear \
--inputbox "Entrez le répertoire personnel de cet utilisateur /home/${username} :" 16 51 2> $homedir
if [ ! -z $homedir ]; then
homedir="-d $homedir"
fi
Xdialog --title "Nouvelle utilisateur - Modèle de répertoire -" --clear \
--inputbox "Entrez le modèle de répertoire /etc/skel :" 16 51 2> $skeldir
if [ ! -z $skeldir ]; then
if [ -d $skeldir ]; then # -d permet de vérifier si c'est
# un répertoire (cf. man test)
skeldir="-k $skeldir"
else
Xdialog --msgbox 'Le répertoire $skeldir n'existe pas!' 0 0
exit 0
fi
fi
Xdialog --title "Nouvelle utilisateur - Shell -" --clear \
--inputbox "Entrez le shell de l'utilisateur :" 16 51 2> $shell
if [ ! -z $shell ]; then
if [ -x $shell ]; then
shell="-s $shell"
else
Xdialog --msgbox 'Le programme $shell n'existe pas ou n'est pas exécutable' 0 0
exit 0
fi
else
shell="-s /bin/bash"
fi
Xdialog --title "Nouvelle utilisateur - Date d'expiration -" --clear \
--inputbox "Entrez la date d'expiration [aucune] :" 16 51 2> $expiration
if [ ! -z $expiration ]; then
expiration="-e $expiration"
fi
Xdialog --title "Nouvelle utilisateur - Editeur -" --clear \
--inputbox "Entrez l'éditeur préféré /usr/bin/vim :" 16 51 2> $editor
if [ ! -z $editor ]; then
if [ ! -x $editor ]; then
Xdialog --msgbox 'L'éditeur $editor n'existe pas ou n'est pas exécutable' 0 0
exit 0
fi
fi
# On ajoute l'utilisateur
useradd $homedir -m $skeldir $shell $expiration $username 2> /dev/null
# On vérifie que tout s'est bien passé
if [ $? -eq 1 ]; then
Xdialog --msgbox 'Une erreur s'est produite lors de la creation de l'utilisateur !' 0 0
Xdialog --msgbox 'Veuillez verifier les valeurs saisies.' 0 0
exit 0
fi
# On définit l'éditeur préféré de l'utilisateur
Xdialog --msgbox 'export EDITOR=$editor' 0 0 >> /home/${username}/.bashrc
# On définit le password de l'utilisateur
Scripting Bash 9
passwd $username
}
---------------------------------------------------------------------------------------------------------------------------------------------
Pouvez-vous m'aider s'il vous plait ?
Merci à tous
Configuration: Windows XP
Firefox 2.0.0.11