Salut,
Un minimum d'effort de ta part aurait été le bienvenu quand même :-\
===================================================
Question 1
Gérez les parametres passés au script(S#,$1,etc).Ne proposez pas de saisie,ne placez pas ces valeurs a l'avance dans les variables. En cas de présence d'un seul paramètre c'est forcement le nom d'utilisateur a créer, le placer dans une variable appelée <<NUSER>>. S'il y a trois parametres alors celui situé apres le -p(pour password) est le mot de passe de l'utilisateur, le placer dans une variable PASSWD. Le -p peut etre placé en premier mais aussi apres le nom de l'utilisateur autrement dit l'ordre des parametres n'a pas d'importance
Voir : les parametres
Utilisation de getopts
Voir aussi "man bash" (chercher "getopts"
Question 2
Modifiez ou ajouter la gestion des erreurs au bloc précedent : le script quitte avec une erreur si le nom d'utilisateur n'est pas precisé. Si le mot de passe est absent il es fixé par défaut a password
Voir "getopts" ci-dessus
le remplacement de variables en shell bash
Question 3
un nom d'utilisateur ne doit pas depasser huit caractere. Si le nom depasse 8 caractere quittez avec une erreur.
var==bonjour ; echo ${#var}
man bash chercher "test" ou "["
if [ ... ]; then ...; fi
Question 4
Verifiez si l'utilisateur existe deja (presence dans /etc/passwd)
man grep et code retour ($?)
if [ ... ]; then ...; fi
Question 5
Calculez un UID pour l'utilisateur. Trouvez l'UID le plus élevé dans /etc/passwd et lui ajouter 1. Placer cette valeur dans une variable <<NUID>>. Exclure la recherche de l'utilisateur nobody qui a souvent l'UID le plus elevé.
man grep, man cut, man sort, man expr
Question 6
Le groupe par défaut de l'utilisateur sera <<Users>>. Il existe déjà. placé le GID du groupe <<Users>> dans une variable <<NGID>>
if [ ... ]; then ...; fi
Question 7
Construisez dans une variable <<LIGNE>> la ligne qui sera ajoutée a /etc/passwd. Le shell utiliser est <</bin/bash>>. Le repertoire personnel /home/$NUSER. Le commentaire <<Utilisateur $NUSER>> et le mot de passe reste a << x >>. Ajouter cette ligne a la fin du fichier /etc/passwd. Pour mettre a jour automatiquement le fichier /etc/shadow lancez ensuite la commande << pwconv>>
LIGNE="bla:bla:bla:bla"
echo "$LIGNE" >> /etc/passwd
Question 8
créez le mot de passe de l'utilisateur : utiliser la commande <<passwd>>, en lisant son manuel et notamment le parametre <<--stdin>>. Aucune question ne doit etre posée.
Voir : changer le mot de passe via un script
Question 9
Créer enfin le repertoire personnel de l'utilisateur /home/$NUSER. Deux cas peuvent se présenter; Si le repertoire existe deja changer le proprietaire de ce repertoire et de tout son contenu pour qu'il appartienne a l'utilisateur et au groupe <<users>>. S'il n'existe pas créé le recopiez tous les fichiers contenus dans /etc/skel dedans et changer le proprietaire et le groupe de l'ensemble.
man mkdir, man chown, man chgrp, man cp
if [ ... ]; then ...; fi
;-))
Z'@+...che.JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.