next up previous contents index
suivant: Création des nouvelles entrées monter: Développement précédent: Détermination des entrées de   Table des matières   Index


Extraction des anciennes entrées et mise-à-jour

Les anciennes entrées sont localisables grâce à l'intersection de l'ensemble des anciens utilisateurs et celui des utilisateurs à créer. L'opération se schématise comme suit.

\begin{displaymath}
\begin{array}{l@{\quad}l@{\;=\;}l}
\mbox{Soit} &
\mathcal{...
...s{\'e}der un compte sous {\textsc{Unix}}.} \\ [2ex]
\end{array}\end{displaymath}



\begin{displaymath}
\begin{array}{l@{\;=\;}l}
\mathcal{E}_{ancien} &
\left\{ \...
...al{E}_{ancien} \cap \mathcal{E}_{nouveau}
\\ [2ex]
\end{array}\end{displaymath}

Or cette dernière liste ne contient que les "usernames" OpenVMS. Par conséquent, à partir du "username", nous allons extraire son prénom et son nom. Grâce à cette information, nous pourrons rechercher dans "PASSWD_REF", en fonction du contenu du cinquième champ, la présence éventuelle de l'ancienne définition.

Nous allons donc faire une boucle de lecture sur chaque enregistrement du fichier "LIST", la valeur sera stockée dans la variable locale "username". Nous obtenons :

cat $LIST |\
while
    read username
do
$\cdots$
done

L'extraction du prénom et du nom se fait grâce :

Pour obtenir le "login" UNIX, il suffira d'utiliser "awk". La condition du sélecteur du programme "awk" sera l'identité entre le cinquième champ du fichier "PASSWD_REF" et le nom obtenu grâce à la précédente requête. Nous aurons donc :
name=`grep $username $WHO_REF  | cut -d! -f2 | cut -c2-`
is_user=`$AWK -v name="$name" '
    BEGIN { FS=":" }
    $5 == name { print $0 }
' $PASSWD_REF`

Par conséquent, si la variable "is_user" est vide, le bloc action associé au sélecteur "$5 == name" n'a jamais été exécuté. Il n'y a donc aucun utilisateur actuel qui satisfait ce critère : cet utilisateur n'est pas déjà défini . Par contre, si cette variable est non vide, l'utilisateur courrant est déjà enregistré. Dans ce cas, il ne restera plus qu'à générer les informations adéquates en fonction des deux informations clef : le "username" OpenVMS et le "logname" UNIX de l'utilisateur en train d'être traité.

Pour plus d'information sur les fichiers concernés et leurs formats, reportez-vous aux pages de manuels adéquates. Pour le détail concernant la génération des informations, reportez-vous à la section [*].

Remarque 16..6 :


La variable "is_user" contiendra alors l'ancienne définition associée au compte UNIX (extraite de "PASSWD_REF") pour cet utilisateur.


next up previous contents index
suivant: Création des nouvelles entrées monter: Développement précédent: Détermination des entrées de   Table des matières   Index
baudry@esme.fr