Ce document a été produit par HEVEA.
Votre browser peut avoir a être configuré pour afficher correctement certains symboles.
Reportez-vous à la
documentation d'HEVEA.

Licence d'informatique
Module de C/Unix
Les commandes cmd5 et kn

Examen -- Partie Unix

Philippe Marquet

Septembre 2001

Les documents de cours et TD sont autorisés.
On rendra deux copies séparées pour la partie langage C et pour la partie Unix ; la partie Unix sur une copie de couleur.

Ce document est disponible sous forme d'un fichier PostScript compressé.





1  Vérification de signature numérique de fichiers, cmd5

Nous allons développer une commande de vérification de signature de fichiers : cmd5 (check md5).

  Signature numérique d'un fichier

La signature numérique d'un fichier est une valeur calculée en fonction de la valeur du fichier (c'est-à-dire de son contenu). Cette signature est telle que si le contenu du fichier change, la valeur de sa signature change. On parle de fonction signature pour identifier la fonction qui calcule la signature en fonction de la valeur du fichier.

La signature d'un fichier est typiquement utilisée pour assurer qu'un fichier diffusé, par exemple sur Internet, n'a pas été corrompu. On compare la valeur de la fonction signature sur le fichier reçu et la valeur de la fonction signature sur le fichier originel (typiquement transmise avec le fichier).

La commande Unix md5sum calcule la signature d'un fichier dont le nom est donné en paramètre selon l'exemple suivant :
% md5sum xam01-sep.tex
380313ae6a1e3c441cb8691aff8cbc52  xam01-sep.tex 

  Distribution de fichiers

On considère la distribution de fichiers sous forme de répertoires telle que :

  La commande cmd5

La commande cmd5 permet d'une part de générer les fichiers Files.md5sum, et d'autre part de vérifier l'intégrité de tous les fichiers d'un répertoire donné en comparant leur signature numérique aux valeurs contenues dans les fichiers Files.md5sum.

La syntaxe de la commande cmd5 est la suivante :
cmd5 [--generate] [dirname]
l'option --generate indique de générer les fichiers Files.md5sum (par défaut, la commande teste l'intégrité de ces fichiers et affiche un message en cas d'inconsistance). Le nom du répertoire passé en argument (le répertoire courant par défaut) est celui que la commande doit considérer.
Question 1  [Algorithme de cmd5]   Décrivez un algorithme pour

Question 2  [Commande cmd5]   Donnez le code Bourne-shell commenté de la commande cmd5. Il est particulièrement bienvenu de découper ce code en fonctions.

2  Kill Netscape, kn

Utilisateur de Netscape, vous avez déjà rencontré le problème suivant : lors du chargement d'une page, Netscape vous indique par exemple Starting Java... et se fige ! Il ne reste alors plus qu'à supprimer le processus Netscape et à relancer le navigateur.

Nous allons développer la commande kn qui va terminer Netscape proprement. En effet, lors de son lancement, Netscape crée un fichier de verrou destiné à éviter deux exécutions simultanées de Netscape par un même utilisateur.

Ce fichier de nom lock est situé dans le répertoire .netscape de l'utilisateur. C'est en fait un lien symbolique qui mémorise quelques informations :
% ls -l ~/.netscape/lock
lrwxrwxrwx   1 phm  8 Sep 06 13:36 /users/phm/.netscape/lock -> 134.206.10.42:23171
Le numéro 134.206.10.42 est le numéro IP de la machine sur laquelle s'exécute Netscape. Le numéro 23171 est le numéro du processus Netscape sur cette machine.
Question 3  [Pourquoi un verrou ?]   Expliquez pourquoi est-ce que Netscape veut éviter deux invocations simultanées par le même utilisateur.

Question 4  [Informations]   Quelles sont les informations nécessaires pour terminer le processus Netscape en cours ?

Question 5  [Commande kn]   Donnez le code Bourne-shell de la commande kn.

Les commandes suivantes peuvent être utiles :
Ce document a été traduit de LATEX par HEVEA.