La procédure que nous voulons mettre en place doit permettre de créer
de nouvelles entrées dans le fichier "passwd(5)". Pour rappel,
ce fichier permet définir la liste des utilisateurs pouvant se connecter au
système. Comme il l'a été précisé à la section , chaque
utilisateur sous UNIX doit posséder un identifiant numérique unique et
un numéro de groupe. Ce numéro doit être unique par groupe et non pas
par utilisateur.
Par conséquent, en se fixant une valeur de départ, il faudra chercher dans le fichier "passwd" le dernier identifiant non attribué à partir de la valeur de départ. Le but de ce programme n'est donc pas de prendre le dernier numéro attribué et de l'incrémenter de 1 mais bien de déterminer le premier numéro disponible supérieur à la valeur de départ. Il faudra procéder de même pour pouvoir insérer une nouvelle entrée dans le fichier "group(5)". Il en résulte que nous allons introduire une option dans le lancement de notre procédure qui, en fonction de celle-ci, déterminera le dernier UID ou GID disponible. Nous aurons donc les options suivantes :
Option | Action |
-u | Détermination du dernier UID disponible. |
-g | Détermination du dernier GID disponible. |
Pour pouvoir utiliser le résultat de cette procédure, nous afficherons la valeur adéquate sur la sortie standard. Ainsi, si notre procédure s'appelle "searchid", nous pourrons récuperer le résultat de la façon suivante :
variable=`searchid -u`
ou bien
variable=`searchid -g`