Création du répertoire pour l'utilisateur,
Mise en place d'un environnement de base pour
l'utilisateur.
ajoututil <nom_utilisateur> [-g <nom_groupe>]
[-s <interpreteur>] [-i <info>] [-u <uid>]
Elle accepte les options suivantes:
-s interpreteur_de_commandes, le premier programme exécuté quand l'utilisateur se connecte, qui est généralement l'interpréteur de commandes (sh,bash,csh,tsh,ksh),
-i information, ce champ est utilisé pour donner une information plus précise sur l'utilisateur que son nom de login. En général on utilise le nom complet de l'utilisateur (Nom Prénom),
-u numero_identification, ce
numéro doit être unique dans le fichier /etc/passwd,
il identifie l'utilisateur dans le système.
Définition d'un environnement de
travail
Pour pouvoir tester votre script sans pour cela risquer de perturber l'organisation du système, vous allez créer un environnement LOCAL à votre répertoire de travail qui va correspondre à l'environnement réel de la commande dans un cadre d'exploitation. Pour cela vous allez exécuter les commandes suivantes:
Dans le répertoire tpis3 vous allez créer les répertoires etc et home,
Dans le répertoire ~/tpis3/etc,
vous
allez créer une copie des fichiers réseau passwd
et group
grâce à la commande ypcat qui liste leur
contenu sur la sortie standard.
Règles suivies lors de la création d'un utilisateur
Le répertoire /home regroupe l'ensemble des répertoires utilisateurs enregistrés sur le système. Par exemple un utilisateur duchmol qui appartient au groupe etudiant aura comme répertoire de travail:
/home/duchmol
Un utilisateur appartient à un groupe au
minimum. Le groupe d'un utilisateur doit exister avant que l'on demande
la création d'un utilisateur dans ce groupe.
Dans le cadre de l'environnement de test, il faudra
s'assurer que c'est le cas. Les valeurs par défaut qui seront
utilisées sont les suivantes:
l'interpréteur de commandes: /bin/sh,
le champ information: "Utilisateur",
Le numéro d'identification sera calculé en fonction des données du fichier passwd.
ATTENTION : Le script doit être écrit de
façon à ce que le passage de la phase de test
(séance de TP) à la phase d'exploitation, ne demande que
peu de modification. C'est pour cette raison que vous utiliserez des
variables pré-définies en début de script et qui
seront utilisées dans la suite du script. Lors de la phase
d'exploitation il suffira de modifier la valeur des variables
pré-définies.
L'utilisation d'une fonction comme ajoututil doit être réservée à un nombre limité d'utilisateurs. Vous allez créer une liste d'utilisateurs pouvant utiliser la commande. Si l'utilisateur n'est pas autorisé, la commande se termine en affichant un message indiquant la raison de cette interruption.
Comme indiqué dans l'introduction, la commande peut être appelée avec pour seul argument le nom d'utilisateur à créer. Cependant, l'opérateur peut ajouter des arguments supplémentaires. La syntaxe est la suivante:
[ -x argument_option_x ]Cela signifie que les options sont facultatives; x représente une option qui peut prendre la valeur: g,s,i ou u et doit être suivi d'un argument pour cette option.
Pour chacun des arguments fournis, il faut vérifier qu'ils sont valides pour être utilisés. Il faut notamment vérifier:
Le nom de groupe doit exister dans le fichier group;
Il faut vérifier que le répertoire de l'utilisateur n'existe pas;
Il faut vérifier que le nom de la première commande (interpréteur de commandes) existe;
Le champ information ne doit pas contenir de symbole ":";
Il faut vérifier que le numéro d'identification de l'utilisateur à créer n'existe pas. Si l'opérateur ne l'a pas spécifié, on utilisera le plus grand numéro d'identification présent dans le fichier passwd auquel on ajoutera 1.
Une fois que les valeurs qui vont constituer la ligne à ajouter dans le fichier passwd ont été vérifiées, il faut demander à l'opérateur de confirmer sa demande de création.
Une fois la confirmation donnée par l'opérateur, il vous faut ajouter la ligne construite dans le fichier passwd.
Lorsque l'utilisateur va se connecter, il lui faut un répertoire de travail, de plus il faut positionner certaines variables d'environnements (PATH, MANPATH, TERM, ...). Suivant l'interpréteur de commandes choisi par l'utilisateur, le fichier prologue est différent. Par exemple:
.cshrc et .login pour l'interpréteur csh
.bashrc pour l'interpréteur bash