Rechercher : dans
Par :

Script bash ! Finaliser mon code

gaerebut, le 7 fév 2008 à 22:17:14 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Script bash ! Finaliser mon code » dans :
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
On peut cacher le code source d'une page HTML VoirMythe: On peut cacher le code source d'une page HTML. Réalité: FAUX. Explications: Pour pouvoir afficher une page web (HTML), le navigateur doit - à un moment où un autre - avoir le code HTML en clair. Il y a donc toujours moyen de le...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...