
                Linux Shadow Password HOWTO, Version franaise

Michael H. Jackson, mhjack@tscnet.com
_Traduction franaise : Igor Genibel (Igor.Genibel@emi.u-bordeaux.fr) _.

   v1.3, 3 Avril 1996
     _________________________________________________________________

   _Ce document dcrit comment obtenir, installer et configurer
   l'ensemble Shadow Password sous Linux. Il prend aussi en compte
   l'adaptation des autres logiciels et dmons rseau accdant
   habituellement aux mots de passe des utilisateurs. Bien qu'ils ne
   fassent pas parti du paquetage, ces programmes ne fonctionnerons plus
   correctement aprs son installation. Ce document contient en plus un
   exemple de code pour mettre  jour vos applications pour qu'elles
   supportent le systme de mots de passe cachs. Des rponses  des
   questions frquemment poses sont fournies en fin de document._
     _________________________________________________________________

1. Introduction

   Ceci est le Shadow password HOWTO pour linux. Ce document dcrit
   comment configurer votre systme linux pour utiliser le systme des
   mots de passe cachs. Quelques exemples d'utilisation concernant
   certaines caractristiques de la _suite Shadow_ (Note: ce terme n'est
   volontairement pas traduit afin de ne pas alourdir la comprhension du
   document) sont aussi inclus.

   Lorsque vous installerez le paquetage des mots de passe cachs et
   lorsque vous vous servirez des utilitaires, vous devrez tre log
   root. Lorsque vous installerez le paquetage, vous devrez effectuer
   certains changements sur des utlitaires systmes, il est donc trs
   fortement recommend de faire des copies de sauvegarde de programmes
   indiqus. Je vous recommande aussi de lire et de comprendre toutes les
   instructions avant de commencer.

1.1 Note du traducteur

   Tout au long du document vous constaterez trs certainement que je
   n'ai pas traduit le terme "Shadow Password". La raison est simple: le
   traduction de ce terme n'est pas lgante. Je pense qu'une simple
   explication (voir l'introduction) de celui-ci vaut beaucoup mieux
   qu'une "franisation" douteuse.

1.2 Changements par rapport aux versions prcdentes

   Ajouts:
     * Ajout de la sous-section Pourquoi vous ne devriez pas installer le
       systme Shadow Password
     * Ajout de la sous-section Mise  jour du programme xdm
     * Ajout de la section Comment faire que les caractristiques de la
       suite Shadow fonctionnent
     * Ajout de la section contenant les questions les plus frquemment
       poses

   Corrections/Mise  jour:
     * Correction des rfrences html sur Sunsite
     * Correction dans la section sur wu-ftp pour ajouter -lshadow dans
       le Makefile
     * Correction de quelques fautes de frappes et de langage
     * Chagement dans la section sur wu-ftp pour supporter le format ELF
     * Mise  jour pour mettre en vidence les problmes de scurite de
       certains programmes de login
     * Mise  jour pour recommander la Suite Linux Shadow par Marek
       Michalkiewicz

1.3 Nouvelles versions de ce document:

   La dernire version de ce document pourra toujours tre rcupre via
   FTP anonyme sur:
     * Version Originale: _sunsite.unc.edu_
/pub/Linux/docs/HOWTO/SHADOW-HOWTO
       ou:
/pub/Linux/docs/HOWTO/other-formats/SHADOW-HOWTO{-html.tar,ps,dvi}.gz
     * Version Francaise: _ftp.lip6.fr_
/pub/linux/french/docs/HOWTO/Shadow-Password-HOWTO*

   Ou bien par le World Wide Web: Linux Documentation Project Web Server,
    la page: SHADOW-HOWTO sinon directement par moi,
   <mhjack@tscnet.com>. Il sera aussi post dans le newsgroup:
   comp.os.linux.answers

   Ce document est maintenant stock en portant le nom Shadow-AAJJMM.

1.4 Commentaires ou suggestions.

   Merci de m'envoyer tout commentaire, mise  jour ou suggestion:
   Michael H. Jackson <mhjack@tscnet.com>. Plus vite je reois vos
   commentaires, plus vite je mets  jour ce document. Si vous avez des
   problmes, merci de m'crire directement, je suis trs rarement  jour
   avec les newsgroups.

2. Pourquoi utiliser le systme de mots de passe Shadow?

   La plupart des distributions Linux actuelles ne contiennent pas le
   support des mots de passe shadow (La Slackware 2.3, Slackware 3.0 et
   d'autres distributions assez populaires...). Une des raisons est que
   le copyright concernant la suite Shadow n'tait pas clair sur les
   droits de distribution. _Linux_ utilise la licence GNU (quelques fois
   rfrence sous le nom de _Copyleft_) qui permet  quiconque de le
   stocker sur n'importe quel support (comme un CD-ROM par exemple) et
   est responsable des droits pour cela.

   Le mainteneur actuel de la _Suite Shadow_, Marek Michalkiewicz
   <marekm@il7linuxb.ists.pwr.wroc.pl> a reu les sources de l'auteur
   originel sour un copyright style BSD permettant la redistribution.
   Maintenant que le problme de la distribution est rsolu, il est
   probable que les prochaines distributions contiendront les shadow
   password par dfaut. En attendant vous devrez l'installer vous-mme.

   Si vous avez install votre distribution depuis un CD-ROM, vous pouvez
   trouver que, dans la mesure o la distribution n'a pas la _suite
   shadow_ d'installe, quelques fichiers dont vous avez besoin pour
   installer la _suite shadow_ peuvent se situer sur le CD-ROM.

   _Cependant, la suite shadow 3.3.1, 3.3.1-2 et shadow-mk possdent
   toutes un problme de scurit avec leur programme de login ainsi
   qu'avec d'autres programmes possdant le droit setuid root. En
   consquence, elle ne doivent pas tre utiliss plus longtemps._

   Tous les fichiers ncessaires peuvent tre rcuprs via ftp anonyme
   ou via le World Wide Web.

   Sur un systme linux sans l'ensemble Shadow install, les informations
   sur l'utilisateur, et en particulier le mot de passe sont stockes
   dans le fichier /etc/passwd. Le mot de passe est enregistr dans un
   format _encrypt_. Si vous demandez  un expert en cryptographie, il
   (ou elle) vous rpondra que le mot de passe n'est pas _encrypt_ mais
   _encod_. En fait, lors de l'utilisation de crypt(3), le mot de passe
   est considr comme la cl pour encoder un texte de valeur nulle.
   C'est la raison pour laquelle  partir de maintenant, j'utiliserai le
   terme _encod_.

   L'algorithme utilis pour encoder le mot de passe fonctionne  sens
   unique, c'est--dire qu'il est trs difficile  partir du mot de passe
   encod de retrouver l'original. Vous trouverez plus d'informations 
   propos de l'algorithme utilis dans la section sec-crypt les pages de
   manuel de crypt(3).

   Lorsqu'un utilisateur dfinit un mot de passe, il est encod avec une
   valeur alatoire appele _sel_ (Note : _salt_ en Anglais).
   C'est--dire qu'un mme mot de passe pourrait tre enregistr de 4096
   faons diffrentes. La valeur du _sel_ est alors enregistre avec le
   mot de passe dsormais encod.

   Lorsqu'un utilisateur se connecte et saisit son mot de passe, le _sel_
   est tout d'abord retrouv  partir du mot de passe encod. Alors, le
   mot de passe entr est encod avec le _sel_ prcdemment retrouv.

   Il est, avec des moyens informatiques, difficile (mais pas impossible)
   de prendre un mot de passe _encod_ alatoirement et de retrouver le
   mot de passe original. Quoi qu'il en soit, sur un systme ayant de
   nombreux utilisateurs, il est probable que certains mots de passes
   soient vidents: un simple mot, un nom, ou une combinaison de mots
   simples.

   Mais le pirate de systme sait tout cela, et va simplement encoder un
   dictionnaire de mots de passe usuels en utilisant les 4096
   possibilits de _sel_. Il va alors comparer les mots de passe encods
   dans le fichier /etc/passwd par sa propre base de donne. Quand il
   aura trouv une quivalence, il aura le mot de passe d'un compte. Cela
   s'appelle une _attaque au dictionnaire_, et c'est une des mthodes les
   plus courantes pour accder  un systme sans autorisation.

   En y rflchissant,  un seul mot de passe de 8 caractres correspond
   4096 mots de passes encods de 13 caractres (c'est  dire 4096x13
   octets). Donc un dictionnaire de 400 000 mots simples, noms, mots de
   passes, ou simple variations, tiendrait facilement sur un disque dur
   de 4Go. Le pirate a juste besoin de les trier et de les comparer.

   Mme sans avoir beaucoup d'espace disque, des utilitaires comme
   crack(1) peuvent en gnral casser pas mal de mots de passe sur un
   systme contenant suffisamment d'utilisateurs. (En considrant que les
   utilisateurs du systme sont autoriss  lire leur propre mot de
   passe).

   Le fichier /etc/passwd contient aussi des informations comme
   l'identificateur de l'utilisateur (UID) et l'identificateur de groupe
   (GID) qui sont utiliss par de nombreux programmes. C'est pour cela
   que le fichier passwd _doit_ tre lisible par tout le monde. Si vous
   changiez les permissions de /etc/passwd de telle sorte que plus
   personne ne puisse le lire, la premire chose que vous pourriez
   constater, c'est que la commande ls -l affiche dsormais le user ID au
   lieu du nom !

   Le kit Shadow rsout ce problme en dplaant les mots de passe
   encods vers un autre fichier (en gnral /etc/shadow). Il n'y a que
   le root qui a les permissions de lecture et d'criture sur le fichier
   _shadow_. Quelques programmes (comme xlock) ncessitent que le groupe
   _shadow_ puisse lire et crire dans le fichier /etc/shadow. Il est
   prfrable que les programmes qui ont juste besoin de lire et vrifier
   le mot de passe soient lancs SGID _shadow_ plutt que SGID root.

   En dplaant les mots de passe vers le fichier /etc/shadow, nous
   cartons effectivement au pirate la possibilit d'avoir accs aux mots
   de passe encods avec lesquels ils auraient pu faire une _attaque au
   dictionnaire_.

   De plus, le _kit shadow_ propose de nouvelles possibilits
   intressantes:
     * Un fichier de configuration pour configurer les options de login
       (/etc/login.defs),
     * Des utilitaires pour ajouter, modifier et effacer des comptes
       utilisateurs,
     * Gestion de la dure des mots de passe,
     * Gestion de la dure d'un compte,
     * Groupes shadow (optionnels),
     * Mots de passe de double longueur (16 caractres),
     * Meilleur contrle sur la slection du mot de passe d'un
       utilisateur,
     * Mots de passe Dial-up,
     * Programmes d'authentification secondaire.

   Installer l'_ensemble shadow_, c'est contribuer  la scurit de votre
   systme, mais il y a bien d'autre choses  faire pour scuriser votre
   systme. Il y aura probablement une srie de HOWTO discutant de la
   scurit et des mthodes de scurisation.

   Pour le moment, pour avoir des informations sur la scurit et linux,
   incluant les vulnrabilits connues du systme, allez voir la: Linux
   Security home page.

2.1 Pourquoi ne devriez-vous pas installer le systme Shadow Password

   Il y a quelques circonstances et quelques configurations qui font
   qu'installer la _Suite Shadow_ n'est pas une bonne ide:
     * La machine ne possde pas de comptes utilisateurs,
     * Votre machine fonctionne sur un rseau local et utilise NIS
       (Network Information Service) pour rcuprer ou fournir des noms
       d'utilisateurs et des mots de passe  d'autres machines sur le
       rseau (Cela peut actuellement tre fait et n'amliore pas la
       scurit pour autant),
     * Votre machine est utilise par des serveurs de terminaux afin de
       vrifier des utilisateurs via NFS (Network File Sytem), NIS, ou
       quelqu'autre mthode,
     * Votre machine utilise d'autres logiciels pour valider les
       utilisateurs, et il n'y a pas de version disponible, et vous
       n'avez pas les sources.

2.2 Format du fichier /etc/passwd

   Sur un systme ne possdant pas la suite Shadow, voici le format du
   fichier /etc/passwd

username:passwd:UID:GID:full_name:directory:shell

   En dtail:

   _username_
          Le nom de l'utilisateur (login)

   _passwd_
          Le mot de passe encod

   _UID_
          Identificatuer de l'utilisateur: user ID

   _GID_
          Identificatuer du groupe: group ID

   _full_name_
          Le nom complet de l'utilisateur (Prnom Nom) - Ce champ est
          appel le champ GECOS (General Electric Comprehensive Operating
          System) et peut ventuellement contenir d'autres informations

   _directory_
          Rpertoire personnel de l'utilisateur

   _shell_
          Shell par dfaut de l'utilisateur

   Par exemple:

username:Npge08pfz4wuk:503:100:Full Name:/home/username:/bin/sh

   Np est le _sel_ et ge08pfz4wuk est le mot de passe _encod_. Pour le
   mme mot de passe, son quivalent encod aurait tout aussi bien pu
   tre kbeMVnZM0oL7I. Il y a 4096 possibilits d'encodage pour le mme
   mot de passe. (Le mot de passe de cet exemple est 'password', un trs
   _mauvais_ mot de passe).

   Une fois l'ensemble shadow install, voil  quoi ressemblera votre
   fichier /etc/passwd:

username:x:503:100:Full Name:/home/username:/bin/sh

   Un x est venu remplacer le mot de passe encod. Mis  part a, le
   format du fichier /etc/passwd reste en fait inchang. Ceci permet 
   tous les programmes qui lisent le fichier /etc/passwd sans avoir
   besoin d'accder aux mots de passe de fonctionner correctement.

   Les mots de passes encods sont dsormais dans le fichier /etc/shadow.

2.3 Format du fichier /etc/shadow

   Le fichier /etc/shadow contient les informations suivantes:

username:passwd:last:may:must:warn:expire:disable:reserved

   En dtail:

   _username_
          Le Nom de l'Utilisateur

   _passwd_
          Le mot de passe encod

   _last_
          Date de la dernire modification (en nombre de jours depuis le
          1er janvier 1970).

   _may_
          Nombre de jours avant que le mot de passe puisse tre modifi

   _must_
          Nombre de jours avant que le mot de passe doive tre modifi

   _warn_
          Nombre de jours durant lesquels l'utilisateur est prvenu de
          l'expiration de son mot de passe.

   _expire_
          Nombre de jours entre l'expiration du mot de passe et la
          fermeture du compte.

   _disable_
          Date de la fermeture du compte (en nombre de jours depuis le
          1er janvier 1970).

   _reserved_
          Champ rserv

   Donc, l'exemple prcedent devrait tre:

username:Npge08pfz4wuk:9479:0:10000::::

2.4 Apercu de la fonction crypt(3)

   extrait de la page de manuel de crypt(3)

   "_crypt_ est la fonction de cryptage du mot de passe. Elle est base
   sur l'algorithme du DES (_Data Encryption Standard_) avec quelques
   modifications pour viter les recherches matrielles de la cl.

   La cl est le mot de passe de l'utilisateur

   Le _sel_ est compos de deux caractres choisis dans l'ensemble
   [a-zA-Z0-9./]. cette chaine de caractre est utilise pour perturber
   l'algorithme de 4096 diffrentes faons.

   En prenant les 7 derniers bits de chaque caractre du mot de passe, on
   obtient une cl de 56 bits. Cette cl est utilise pour crypter une
   chane de caractre constante (gnralement constitue de zro). La
   valeur retourne pointe sur le mot de passe crypt: une srie de 13
   caractres ASCII imprimables (les deux premiers caractres
   correspondent au sel). La valeur retourne pointe sur une donne
   statique dont le contenu est modifi  chaque appel.

   _Attention:_ Une cl de 56 bits correspond : 2^56 donc 7.3e16 valeurs
   possibles. Les recherches exhaustives _sont possibles_ en utilisant
   des ordinateurs  architecture massivement parallle. Des logiciels
   comme crack(1) travaillent avec des cls qui sont gnralement
   utilises par les humains. C'est--dire que la slection de mots de
   passe tests sont des mots simples, mots de passe frquemment utiliss
   et des noms. L'utilisation d'un programme passwd(1) qui recherche des
   mots de passe trop simple est recommand.

   L'algorithme DES lui-mme est trs limit, ce qui fait qu'envisager
   l'utilisation de crypt(3) pour autre chose que de l'authentification
   de mots de passe n'est pas une bonne ide. Si vous envisagez
   d'utiliser crypt(3) pour un projet de cryptographie, ne le faites pas,
   procurez-vous plutt un bon livre sur le cryptage de donnes et une
   des nombreuses bibliothques DES."

   Si vous recherchez un bon livre sur le cryptage de donnes, je vous
   recommande:
        "Applied Cryptography: Protocols, Algorithms, and Source Code in C"
        par Bruce Schneier <schneir@chinet.com>
        ISBN: 0-471-59756-2

3. Se procurer le paquetage Shadow.

3.1 Historique du paquetage Shadow pour Linux?

   _N'UTILISEZ PAS LES PAQUETAGES DECRITS DANS CETTE SECTION, ILS
   CONTIENNENT DES PROBLEMES DE SECURITE_

   Le paquetage Shadow original a t crit par John F. Haugh II.

   De nombreuses versions peuvent tre utilises sur un systme Linux:
     * shadow-3.3.1 est l'original
     * shadow-3.3.1-2 est le patch spcifique  Linux fait par Florian La
       Roche (flla@stud.uni-sb.de) et contient quelques amliorations.
     * shadow-mk est le paquetage spcifique  Linux.

   Le paquetage shadow-mk est en fait constitu du paquetage shadow-3.3.1
   distribu par John F. Haugh II patch avec shadow-3.3.1-2 avec en
   plus:
     * des corrections par Mohan Kokal <magnus@texas.net> rendant
       l'installation bien plus vidente,
     * un patch par Joseph R.M. Zbiciak pour login1.c (login.secure) qui
       limine les trous de scurit -f, -h de /bin/login et quelques
       autres patches divers.

   Le paquetage shadow-mk tait prcdemment recommand, mais il doit
   tre remplac  cause d'un trou de scurit du programme login.

   Il y a des _trous de scurit_ dans les versions 3.3.1, 3.3.1-2 et
   shadow-mk qui sont ds au programme login. Le bogue login implique de
   ne pas vrifier la longueur du nom de login. Cela entrane un
   surpassement de la zone tampon qui provoque un crash ou pire encore.
   Il est dit que ce surpassement de zone tampon pourrait permettre 
   quiconque ayant un compte sur le systme d'utiliser ce bogue ainsi que
   des bibliothques partages pour gagner un accs root. Je ne pourrais
   pas vous dire exactement comment cela est possible mais de nombreux
   systmes Linux sont affects. Mais les systmes possdants ces
   _paquetages Shadow_, ainsi que la plupart des distributions pre-ELF
   _sans_ le _paquetage Shadow_ sont vulnrables !

   Pour de plus amples informations sur cette publication ainsi que
   d'autres publications concernant les problmes de scurit de Linux,
   consultez la _Linux Security Home Page (Shared Libraries and login
   Program Vulnerability)_ 
   <http://bach.cis.temple.edu/linux/linux-security/Linux-Security-Faq/Li
   nux-telnetd.html>

3.2 O trouver la Suite Shadow

   La seule suite recommande est en bta test, donc les dernires
   versions sont utilisables en environnement de production et ne
   contiennent pas de programme login vulnrable.

   Le paquetage utilise la convention de notation suivante :
         shadow-AAMMJJ.tar.gz

   o AAMMJJ est la date de publication de la suite.

   Cette version sera ventuellement la version 3.3.3 lorsqu'elle sera
   publie aprs le bta test; et est maintenue par Marek Michalkiewicz
   <marekm@il7linuxb.ists.pwr.wroc.pl>. Elle est disponible sous la forme
   : _shadow-current.tar.gz_  l'adresse
   <ftp://il7linuxb.ists.pwr.wroc.pl/pub/linux/shadow/shadow-current.tar.
   gz>.

   Les miroirs suivants sont aussi disponibles :
     * ftp://ftp.icm.edu.pl/pub/Linux/shadow/shdow-current.tar.gz
     * ftp://iguana.hut.fi/pub/linux/shadow/shadow-current.tar.gz
     * ftp://ftp.cin.net/usr/ggallag/shadow/shadow-current.tar.gz
     * ftp://ftp.netural.com/pub/linux/shadow/shadow-current.tar.gz

   Vous devez utiliser la version actuelle disponible.

   Vous NE devez PAS utiliser une version plus ancienne que la version
   shadow-960129 du fait qu'elles possdent le problme de scurit
   dcrit plus avant.

   Lorsque ce document fait rfrence  la _Suite Shadow_, je ferais
   rfrence  ce paquetage. Il est donc suppos que vous utilisez ce
   paquetage.

   Pour information, j'ai utilis le paquetage shadow-960129 pour faire
   les instructions d'installation.

   Si vous utilisiez prcdemment le paquetage shadow-mk, vous devriez
   mettre  jour cette version et reconstruire tout ce que vous avez
   originellement compil.

3.3 Ce qui est inclus dans le paquetage Shadow

   La paquetage shadow contient les programmes de remplacement pour:

   su, login, passwd, newgrp, chfn, chsh, et id

   Mais il contient aussi des nouveaux programmes:

   chage, newusers, dpasswd, gpasswd, useradd, userdel, usermod,
   groupadd, groupdel, groupmod, groups, pwck, grpck, lastlog, pwconv, et
   pwunconv

   De plus, la bibliothque: libshadow.a est incluse pour permettre de
   compiler les programmes ncessitant un accs en lecture/critures aux
   mots de passe.

   Les pages de manuel sont aussi incluses.

   Il y a aussi un programme de configuration pour le program login
   intall sous le nom de /etc/login.defs.

4. Compiler les programmes.

4.1 Extraire l'archive

   La premire tape aprs avoir rcupr les paquetage est l'extraction
   de l'archive. C'est une archive de format tar et compresse avec gzip.
   Donc tout d'abord dplacez la vers /usr/src, et tapez:

tar -xzvf shadow-current.tar.gz

   Ceci extraira l'ensemble dans le rpertoire: /usr/src/shadow-AAMMJJ

4.2 Configurer le fichier config.h

   La premire chose  faire est d'craser les fichiers Makefile et
   config.h:

cd /usr/src/shadow-AAMMJJ
cp Makefile.linux Makefile
cp config.h.linux config.h

   Jetez un coup d'oeil au fichier config.h. Ce fichier contient les
   dfinitions pour quelques options de configuration. Si vous utilisez
   le paquetage shadow _recommand_, je vous recommande de dvalider le
   support de groupes shadow; pour la premire fois.

   Par dfaut les mots de passe pour les groupes cach sont valids. Pour
   les dvalider, ditez le fichier config.h, et remplacez #define
   SHADOWGRP en #undef SHADOWGRP. Je recommande de commencer sans les
   groupes cachs, mais si vous souhaitez rellement des mots de passe
   pour les groupes ainsi que des administrateurs de groupes vous pourrez
   ultrieurement valider l'option et recompiler le tout. Si vous la
   laissez valide, vous devez crer le fichier /etc/gshadow.

   Valider l'option grant les longs mots de passe n'est pas recommande.

   _Ne PAS changer_ le champ: #undef AUTOSHADOW

   L'option AUTOSHADOW tait prvue pour que les programmes non adapts
   aux mots de passe shadow puissent toujours fonctionner. Cela parat
   intressant en thorie mais ne fonctionne pas correctement. Si vous
   validez cette option, et qu'un programme focntionne avec les droits de
   root, il se peut qu'il utilise la fonction getpwnam() avec les droits
   root, et, plus tard, qu'il crive la donne modifie dans le fichier
   /etc/passwd. Il ne possdera donc plus les proprits _shadow
   passwords_. _chfn_ et _chsh_ sont de tels programmes (Vous pouvez
   passer outre en changeant l'uid rel et effectif avant d'appeler
   getpwnam() car root peut utiliser _chfn_ et _chsh_ aussi).

   Le mme avertissement est aussi valable si vous compilez la libc. Il y
   a une option SHADOW_COMPAT qui fait la mme chose. Elle ne _doit PAS
   tre_ utilise! Si vous commencez  remettre des mots de passe encods
   dans le fichier /etc/passwd, cela pose un problme.

   Si vous utilisez une libc de versions infrieure  4.6.27, vous
   devriez faire un ou deux changements dans le fichier config.h ainsi
   que dans le Makefile. En ce qui concerne le fichier config.h, ditez
   le et remplacez:

#define HAVE_BASENAME

   par

#undef HAVE_BASENAME

   Dans le fichier Makefile, remplacez:

SOBJS = smain.o env.o entry.o susetup.o shell.o \
        sub.o mail.o motd.o sulog.o age.o tz.o hushed.o

SSRCS = smain.c enc.c entry.c setup.c shell.c \
        pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
        tz.c hushed.c

   par

SOBJS = smain.o env.o entry.o susetup.o shell.o \
        sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o

SSRCS = smain.c enc.c entry.c setup.c shell.c \
        pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
        tz.c hushed.c basename.c

   Ce changement ajoute le code contenu dans basename.c qui est contenu
   dans la libc 4.6.27 ou plus.

4.3 Faire une copie de sauvegarde de vos programmes originaux.

   Faites une copie de sauvegarde des fichiers qui vont tre remplacs
   par le kit shadow. Sur un systme Slackware 3.0:
     * /bin/su
     * /bin/login
     * /usr/bin/passwd
     * /usr/bin/newgrp
     * /usr/bin/chfn
     * /usr/bin/chsh
     * /bin/id

   Le paquetage bta possde une cible _save_ dans le Makefile, mais elle
   est commente car les diffrentes distributions placent ces programmes
    diffrents endroits.

   Vous devriez aussi faire une copie de sauvegarde du fichier
   /etc/passwd, mais faites attention  le nommer diffremment de faon 
   ne pas craser l'original.

4.4 Lancer make

   _Vous avez besoin d'tre root pour la plupart de l'installation_

   Lancez make pour compiler les excutables du paquetage.

make all

   Vous pourrez voir les avertissements suivants: rcsid defined but not
   used. Ce n'est rien, il survient seulement parce que l'auteur utilise
   un paquetage de contrle de version.

5. Installer

5.1 Ayez une disquette de boot  porte de main

   Si la mise  jour se droulait mal, il serait utile d'avoir une
   disquette de boot. Si vous avez l'ensemble des deux disquettes
   boot/root que vous avez utilises lors de l'installation de votre
   systme, elles feront probablement l'affaire. Dans le cas contraire,
   vous devrez en gnrer: jetez un coup d'oeil au Bootdisk-HOWTO
   (version francaise: Bootdisk-HOWTO) qui vous dcrira la marche 
   suivre.

5.2 Supprimer les pages de manuel en double

   Vous devriez aussi dplacer les pages de manuels qui vont tre
   remplaces. Mme si vous avez le courage d'installer le kit Shadow
   sans procder  un quelconque sauvegarde, vous aurez  supprimer vos
   anciennes pages: elles ne sont pas crases car - dans la plupart des
   cas - elles sont enregistres dans un format compress.

   Vous pouvez utiliser une combinaison de la commande man -aW et de la
   commande locate pour localiser les pages  effacer. Il est
   gnralement plus ais de retrouver les anciennes pages avant de
   lancer make intall.

   Si vous utilisez la distribution Slackware 3.0, alors les pages de
   manuel que vous devez supprimer sont:
     * /usr/man/man1/chfn.1.gz
     * /usr/man/man1/chsh.1.gz
     * /usr/man/man1/id.1.gz
     * /usr/man/man1/login.1.gz
     * /usr/man/man1/passwd.1.gz
     * /usr/man/man1/su.1.gz
     * /usr/man/man5/passwd.5.gz

   Regardez dans les sous rpertoires /var/man/cat[1-9] Il est possible
   qu'il y ait des pages de manuel du mme nom qui devront tre effaces.

5.3 Lancer make install

   C'est dsormais le moment de taper: (faites ceci en tant que root).

make install

   Ceci installera les nouveaux programmes, remplacera les anciens,
   dfinira les permissions de fichiers, et installera les pages de
   manuel.

   Make install prend en compte l'installation des fichiers include pour
   les mettre au bon endroit dans /usr/include/shadow.

   Si vous utilisez le paquetage bta, vous devez copier  la main le
   fichier login.defs dans les rpertoires /etc/ et tre sr que seul
   root peut le modifier.

cp login.defs /etc
chmod 700 /etc/login.defs

   Ce fichier est le fichier de configuration pour le programme _login_.
   Vous devriez regarder et faire des changements dans ce fichier pour
   votre propre systme. C'est l que vous dcidez sur quel terminal root
   peut se connecter, ainsi que d'autres paramtres de scurit (comme
   l'expiration par dfaut des mots de passe).

5.4 Lancer pwconv

   La prochaine tape consiste  lancer pwconv. Ceci doit tre fait en
   tant que root, et  partir du rpertoire /etc :

cd /etc
/usr/sbin/pwconv

   pwconv lit les donnes du fichier /etc/passwd et les spare en deux
   fichiers: /etc/npasswd et /etc/nshadow.

   Un programme pwunconv permet de faire la dmarche inverse:  partir du
   fichier /etc/passwd et /etc/shadow, il gnre un unique /etc/passwd.

5.5 Renommer npasswd et nshadow

   Aprs avoir lanc pwconv, vous avez normalement cr deux fichiers:
   /etc/npasswd et /etc/nshadow. Ses fichiers doivent tre respectivement
   renomms en /etc/passwd et /etc/shadow. Faites aussi une copie de
   votre fichier /etc/passwd original, mais faites attention que seul le
   root puisse y avoir l'accs. Nous le dplacerons dans le rpertoire
   personnel de root:

cd /etc
cp passwd ~passwd
chmod 600 ~passwd
mv npasswd passwd
mv nshadow shadow

   Vrifiez aussi que les permissions et les propritaires des fichiers
   soient corrects. Si vous utilisez _X-windows_, le programme xlock doit
   pouvoir lire directement le fichier /etc/shadow (mais pas y crire).
   La meilleure solution consiste  configurer le fichier shadow en
   utilisateur root et groupe shadow. Avant toute chose vrifiez que le
   groupe shadow existe bien (regardez dans le fichier /etc/group).
   Actuellement, il ne devrait y avoir aucun utilisateur appartenant  ce
   groupe.

chown root.root passwd
chown root.shadow shadow
chmod 0644 passwd
chmod 0640 shadow

   Votre systme est dsormais quip de mots de passe shadow.
   Dplacez-vous vers une autre console virtuelle et vrifier si vous
   pouvez vous loguer.

   Si vous ne pouvez pas vous loguer c'est que la mise  jour s'est mal
   droule ! Pour revenir  un systme de mot de passes non shadow,
   entrez ce qui suit:

cd /etc
cp ~passwd passwd
chmod 644 passwd
cd /usr/src/shadow-mk
make restore

   Ceci restaurera le fichier passwd original, et restaurera tous les
   fichiers prcdemment sauvegards.

6. Les autres programmes  mettre  jour

   Le paquetage shadow contient la plupart des programmes de remplacement
   aux programmes accdant aux mots de passe. Mais toutefois, il reste
   quelques programmes prsents en gnral sur la plupart des systmes
   qui ncessitent une mise  jour pour fonctionner correctement.

   Si vous utilisez une _Distribution Debian_ (et mme si vous n'en
   utilisez pas), vous pouvez obtenir les sources des programmes que vous
   avez besoin de recompiler  :
   <ftp://ftp.debian/org/debian/stable/source/>

   La but de cette section concerne la mise  jour des programmes:
   adduser, wu_ftpd, ftpd, pop3d, xlock xdm et sudo

   Reportez vous  la section sec-prog pour vous aider  mettre  jour
   les programmes qui ncessitent l'accs aux mots de passes (sans que le
   programme soit SUID root ou SGID shadow).

6.1 le programme Adduser (Slackware)

   Les distributions Slackware (et probablement d'autres) contiennent un
   programme interactif /bin/adduser permettant d'ajouter facilement des
   utilisateurs. Une version Shadow de ce programme peut tre trouve
   sur: ftp://sunsite.unc.edu/pub/Linux/
   system/Admin/accounts/adduser.shadow-1.4.tar.gz.

   Je vous encourage  utiliser les programmes qui sont fournis par le
   paquetage shadow (useradd, usermod et userdel)  la place de adduser.
   Ils ncessitent un peu de temps pour savoir s'en servir, mais l'effort
   est d'autant plus grand que ces programmes effectuent un blocage de
   fichier sur /etc/passwd et /etc/shadow, ce que ne fait pas adduser

   Lisez la section sec-fonction pour de plus amples informations.

   L'installation est aise:

tar -xzvf adduser.shadow-1.4.tar.gz
cd adduser.shadow.1.4
make adduser
chmod 700 adduser
make install

6.2 Le serveur wu_ftpd

   La plupart des distributions Linux incluent le serveur wu_ftpd. Si
   votre distribution n'est pas ``native shadow'', votre serveur wu_ftpd
   n'est pas compil pour le support shadow. wu_ftpd est lanc  partir
   de inetd/tcpd en tant que processus root. Si vous utilisez un ancien
   dmon wu_ftpd, vous devrez de toute faon le mettre  jour car les
   vieilles versions ont un bug, le compte root pouvait tre compromis
   (pour plus d'informations, consultez la page web:
   http://bach.cis.temple.edu/linux/linux-security/Linux-
   Security-FAQ/Linux-wu.ftpd-2.4-Update.html).

   Heureusement, la seule dmarche  faire est de rcuprer les sources
   et de les compiler avec l'option shadow.

   Le serveur wu_ftpd peut tre rcupr sur Sunsite:
   wu-ftp-2.4-fixed.tar.gz

   Une fois l'archive rcupre, placez l dans /usr/src et tapez:

cd /usr/src
tar -xzvf wu-ftpd-2.4-fixed.tar.gz
cd wu-ftpd-2.4-fixed
cp ./src/config/config.lnx.shadow ./src/config/config.lnx

   diter alors le fichier ./src/makefiles/Makefile.lnx et changez la
   ligne:

LIBES     = -lbsd -support

   par

LIBES     = -lbsd -support -lshadow

   Maintenant vous tes prs  lancer le script de compilation installer
   le rsultat:

cd /usr/src/wu-ftpd-2.4-fixed
/usr/src/wu-ftpd-2.4-fixed/build lnx
cp /usr/sbin/wu-ftpd /usr/src/wu-ftpd.old
cp ./bin/ftpd /usr/sbin/wu-ftpd

   Sur mon systme bas sur une Slackware 3.0 j'ai du faire ces
   modifications avant de lancer build: build:

cd /usr/include/netinet
ln -s in_systm.h in_system.h
cd -

   Des problmes ont t rapports lors de la compilation de ce paquetage
   sous des systmes ELF, mais la bta version de la prochaine
   publication fonctionne bien. Elle peut tre trouv :
   wu-ftp-2.4.2-beta-10.tar.gz
   <ftp://tscnet.com/pub/linux/network/ftp/wu-ftpd-2.4.2-beta-20.tar.gz>

   Une fois que vous avez rcupr le serveur, placez-le dans le
   rpertoire /usr/src/ et tapez:

cd /usr/src
tar -xzvf wu-ftpd-2.4.2-beta-10.tar.gz
cd wu-ftpd-beta-10
cd ./src/config

   ditez alors le fichier config.lnx et remplacez:

#undef SHADOW_PASSWORD

   par

#define SHADOW_PASSWORD

   Allez alors dans le rpertoire des Makefiles

cd ../Makefiles

   et ditez le fichier Makefile.lnx. Modifiez alors:

LIBES = -lsupport -lbsd # -lshadow

   par

LIBES = -lsupport -lbsd -lshadow

   Il ne reste plus qu' compiler le programme et l'installer:

cd ..
build lnx
cp /usr/sbin/wu-ftpd /usr/sbin/wu-ftpd.old
cp ./bin/ftpd /usr/sbin/wu-ftpd

   Notez que vous devrez contrler le fichier /etc/inetd.conf afin d'tre
   sr que votre serveur wu-ftpd soit rellement prsent. Il a t
   rapport que certaines distributions placent les serveurs dmons 
   d'autres endroits, et donc, wu-ftpd en particulier pourrait tre nomm
   diffremment.

6.3 ftpd standard

   Si vous utilisez le serveur ftpd standard, tout d'abord, je vous
   recommande de passer au serveur wu_ftpd, mis  part les bugs cits
   prcdemment, il est considr comme plus scuris.

   Si vous insistez et voulez garder la version standard - ou bien vous
   avez besoin du support NIS - le fichier est sur Sunsite:
   ftpd-shadow-nis.tgz

6.4 pop3d (Post Office Protocol 3)

   Si vous utilisez le 3eme _Post Office Protocol_ (POP3), vous devrez
   recompiler le programme pop3d. pop3d est normalement lanc par
   inet2/tcpd dans un process root.

   Il y a deux versions disponibles sur Sunsite:
   pop3d-1.00.4.linux.shadow.tar.gz et pop3d+shadow+elf.tar.gz

   Les deux versions sont trs simples  installer.

6.5 xlock

   Si vous utilisez X-window et que vous ne mettez pas  jour xlock, vous
   devrez utiliser CTRL-ALT-Fx pour vous dplacer sur un autre terminal,
   vous loguer et tuer le process xlock (ou utiliser CTRL-ALT-BS pour
   tuer le serveur X). Mais par chance, la mise  jour d' xlock n'est
   vraiment pas complique.

   Si vous utilisez XFree86 Versions 3.x.x, c'est probablement xlockmore
   qui est install (c'est un superbe conomiseur d'cran et un systme
   de lock). Ce paquetage supporte _shadow_ aprs recompilation. Si vous
   utilisez une vieille version xlock, je vous recommande celle-ci.

   xlockmore-3.7.tgz disponible sur Sunsite:
   ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screen-savers/
   xlockmore-3.7.tgz

   En gros, voil comment procder:

   Rcuprez xlockmore-3.7.tgz et copiez-le dans /usr/src,
   dcompressez-le:

tar -xzvf xlockmore-3.7.tgz

   Editez le fichier: /usr/X11R6/lib/X11/config/linux.cf, et changez la
   ligne:

#define HasShadowPasswd    NO

   en

#define HasShadowPasswd    YES

   Alors, construisez les excutables:

cd /usr/src/xlockmore
xmkmf
make depend
make

   Maintenant, dplacez le tout vers le bon endroit, et mettez--jour les
   propritaires et les permissions de fichier:

cp xlock /usr/X11R6/bin/
cp XLock /var/X11R6/lib/app-defaults/
chown root.shadow /usr/X11R6/bin/xlock
chmod 2755 /usr/X11R6/bin/xlock
chown root.shadow /etc/shadow
chmod 640 /etc/shadow

   Votre xlock fonctionnera dsormais correctement.

6.6 xdm

   xdm est un programme qui prsente un cran de _login_ pour _W-Window_.
   Quelques sytmes dmarrent xdm lorsqu'il se situe dans un niveau
   spcifique (voir /etc/inittab).

   Avec le _kit Shadow_ install, xdm doit tre mis  jour. Heureusement,
   il est relativement facile de mettre  jour votre programme xdm.

   xdm.tar.gz est disponible :
   <ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz>;

   Rcuprez xdm.tar.gz et placez-le dans le rpertoire /usr/src, et
   dcompressez-le:

tar -xzvf xdm.tar.gz

   ditez le fichier /usr/X11R6/lib/X11/config/linux.cf, et changez la
   ligne:

#define HasShadowPassword           NO

   en

#define HasShadowPassword           YES

   Vous pouvez alors compiler les excutables;:

cd /usr/src/xdm
xmkmf
make depend
make

   Copier alors l'excutable:

cp xdm /usr/X11R6/bin

   xdm est excut en tant que root donc vous n'avez pas  changer les
   permissions.

6.7 sudo

   Le programme sudo permet  l'administrateur systme de laisser des
   utilisateurs lancer des programmes qui normalement ncessiteraient les
   permissions root. C'est intressant car a permet  l'administrateur
   de se limiter lui mme l'accs root pendant qu'il permet aux
   utilisateurs de faire des oprations comme monter un disque.

   sudo a besoin d'accder aux mots de passe car il vrifie le mot de
   passe des utilisateurs quand il est invoqu.sudo fonctionne dj SUID
   root, donc accder au fichier /etc/shadow n'est pas un problme.

   la mise  jour sudo pour shadow est disponible:
   ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz

   Cette version a t prvue pour fonctionner avec des mots de passe
   shadow, donc la seule chose  faire est de recompiler le tout
   (mettez-le dans /usr/src):

cd /usr/src
tar -xzvf sudo-1.2-shadow.tgz
cd sudo-1.2-shadow
make all
make install

6.8 imapd (paquetage Email pine)

   imapd est un serveur e-mail tout comme pop3d. imapd est compris dans
   l'ensemble Email pine. La documentation qui est fournie avec le
   paquetage prtend que la configuration par dfaut pour un systme
   linux fonctionne avec shadow. Or j'ai constat que ce n'est pas vrai.
   De plus, je n'ai pas encore compris comment fonctionne la combinaison
   Makefile / Script Build et je n'ai pas russi  le modifier pour qu'il
   supporte le format shadow.

   Si quelqu'un arrive  faire cette mise  jour, merci de m'envoyer un
   email, je l'incluerai ici.

6.9 pppd (Serveur Point-to-Point protocol)

   Le serveur pppd peut tre configur selon de nombreuses mthodes
   d'authentification: _Password Authentifocation Protocol_ (PAP) et
   _Cryptographic Authentification Protocol_ (CHAP). Le serveur pppd
   utilise en gnral les mots de passe stocks dans le fichier
   /etc/ppp/chap-secrets et /etc/ppp/pap-secret. Si vous utilisez cette
   mthode, ce n'est pas la peine de faire de mise--jour.

   pppd vous permet aussi d'utiliser le paramtre _login_ (soit en ligne
   de commande, soit dans le fichier de configuration). Si l'option login
   est utilise, alors pppd utilisera pour le _PAP_ le fichier
   /etc/passwd pour le nom d'utilisateur et le mot de passe. Bien sur a
   ne fonctionnera plus sur un systme mots de passe shadow. Pour
   pppd-1.2.1d, un ajout de code est ncesssaire.

   L'exemple donn dans la prochaine section est la modification du code
   de pppd-1.2.1d (une vieille version de pppd).

   pppd-2.2.0 contient dj le support shadow.

7. Faire en sorte que la suite shadow fonctionne

   Cette section explique quelques lments que vous souhaitez savoir
   depuis que vous avez la suite shadow sur votre systme. De plus amples
   informations sont disponibles dans les pages de manuels.

7.1 Ajouter, modifier, et supprimer des utilisateurs.

   La _Suite Shadow_ a ajout les commandes suivantes qui sont orientes
   ``ligne de commande'', pour ajouter, modifier et supprimer des
   utilisateurs. Vous avez aussi srement d installer le programme
   adduser.

  useradd

   la commande useradd peut tre utilise pour ajouter des utilisateurs 
   votre systme. Vous appelez aussi cette commande pour changer les
   paramtres par dfaut.

   La premire chose  faire est d'examiner les paramtres par dfaut et
   effectuer des changements pour votre propre systme.

useradd -D
     _________________________________________________________________

GROUP=1
HOME=/home
INACTIVE=0
EXPIRE=0
SHELL=
SKEL=/etc/skel
     _________________________________________________________________

   Les paramtres par dfauts ne sont probablements pas ceux que vous
   souhaitez, donc, si vous commencez  ajouter des utilisateurs
   maintenant, vous aurez  spcifier toutes les informations pour chacun
   d'entre eux. C'est pour cela que nous pouvons et devons changer les
   valeurs par dfaut.

   Sur mon sytme:
     * Je veux que le groupe par dfaut soit 100,
     * Je veux que les mots de passe expirent au bout de 60 jours,
     * Je ne veux pas que le compte soit bloqu lors de l'expiration du
       mot de passe,
     * Je veux que le shell par dfaut soit /bin/bash

   Pour effectuer ces changements, j'ai d utiliser:

useradd -D -g100 -e60 -f0 -s/bin/bash

   Maintenant, lancer useradd -D donne:
     _________________________________________________________________

GROUP=100
HOME=/home
INACTIVE=0
EXPIRE=60
SHELL=/bin/bash
SKEL=/etc/skel
     _________________________________________________________________

   Ces valeurs par dfaut sont stockes dans le fichier
   /etc/defaults/useradd

   Maintenant vous pouvez utiliser useradd pour ajouter des utilisateurs
    votre systme. Par exemple, pour ajouter l'utilisateur fred, en
   utilisant les valeurs par dfaut, vous devez utiliser ce qui suit:

useradd -m -c "Fred Flintstone" fred

   Cela crera une entre dans le fichier /etc/passwd:

fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash

   Ainsi que cette entre dans le fichier /etc/shadow:

fred:!:0:0:60:0:0:0:0

   Le rpertoire d'accueil de fredsera cr et le contenu de /etc/skel
   sera copi  cet endroit grce  l'option -m

   De plus, lorsque l'on ne spcifie pas l'IUD, le prochain disponible
   est utilis.

   Le compte de fred est maintenant cr, mais fred ne peut pas se loger
   tant que nous ne dvrouillons pas le compte. Nous effectuons cela en
   changeant le mot de passe.

passwd fred
     _________________________________________________________________

Changing password for fred
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New Password: *******
Re-enter new password: *******
     _________________________________________________________________

   Maintenant /etc/shadow contient:

fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0

   fred est maintenant capable de se connecter et d'utiliser le systme.
   La chose intressante  propos de useradd et des autres programmes
   provenant de la Suite Shadow, est qu'ils effectuent les changements
   dans les fichiers /etc/passwd et /etc/shadow automatiquement. Donc si
   vous ajoutez un utilisateur, et qu'un autre utilisateur change son mot
   de passe au mme moment, les deux oprations sont effectues
   correctement.

   Vous devriez plutt utiliser les commandes fournies qu'diter
   directement les fichier /etc/passwd et /etc/shadow. Si vous ditez le
   fichier /etc/shadow et qu'un utilisateur change son mot de passe au
   mme moment, ce que vous sauverez, sera bien dans le fichier mais, le
   nouveau mot de passe de l'utilisateur sera perdu.

   Voici un petit script intractif permettant d'ajouter des utilisateurs
   en utilisant les commandes useradd et passwd:
     _________________________________________________________________

#!/bin/bash
#
# /sbin/newuser - A script to add users to the system using the Shadow
#                 Suite's useradd and passwd commands.
#
# Written my Mike Jackson <mhjack@tscnet.com> as an example for the Linux
# Shadow Password Howto.  Permission to use and modify is expressly granted.
#
# This could be modified to show the defaults and allow modification similar
# to the Slackware Adduser program.  It could also be modified to disallow
# stupid entries.  (i.e. better error checking).
#
##
#  Defaults for the useradd command
##
GROUP=100        # Default Group
HOME=/home       # Home directory location (/home/username)
SKEL=/etc/skel   # Skeleton Directory
INACTIVE=0       # Days after password expires to disable account (0=never)
EXPIRE=60        # Days that a passwords lasts
SHELL=/bin/bash  # Default Shell (full path)
##
#  Defaults for the passwd command
##
PASSMIN=0        # Days between password changes
PASSWARN=14      # Days before password expires that a warning is given
##
#  Ensure that root is running the script.
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
        echo "You must be root to add news users!"
        exit 1
fi
##
#  Ask for username and fullname.
##
echo ""
echo -n "Username: "
read USERNAME
echo -n "Full name: "
read FULLNAME
#
echo "Adding user: $USERNAME."
#
# Note that the "" around $FULLNAME is required because this field is
# almost always going to contain at least on space, and without the
# the useradd command would think that you we moving on to the next
# parameter when it reached the SPACE character.
#
/usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \
        -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME
##
#  Set password defaults
##
/bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1
##
#  Let the passwd command actually ask for password (twice)
##
/bin/passwd $USERNAME
##
#  Show what was done.
##
echo ""
echo "Entry from /etc/passwd:"
echo -n "   "
grep "$USERNAME:" /etc/passwd
echo "Entry from /etc/shadow:"
echo -n "   "
grep "$USERNAME:" /etc/shadow
echo "Summary output of the passwd command:"
echo -n "   "
passwd -S $USERNAME
echo ""
     _________________________________________________________________

   Utiliser un script pour ajouter des utilisateurs est prfrable 
   l'dition des fichiers /etc/passwd et /etc/shadow ainsi qu'
   l'utilisation de programmes comme adduser de la distribution
   Slackware.

   Vous tes libre d'utiliser et de modifier le script  en fonction de
   votre systme.

   Pour plus d'informations sur useradd, consultez le manuel en ligne.

  usermod

   Le programme usermod est utilis pour modifier les informations
   relatives  un utilisateur. Les options sont les mmes que pour
   useradd.

   Disons que l'on souhaite changer le shell de fred. Vous devrez faire
   la chose suivante:

usermod -s /bin/tcsh fred

   Maintenant l'entre concernant fred dans le fichier /etc/passwd est
   devenue:

fred:*:505:100:Fred
Flintstone:/home/fred:/bin/tcsh

   On change la date d'expiration du compte au 15/09/97:

usermod -e 09/15/97 fred

   Maintenant l'entre concernant fred dans le fichier /etc/shadow est
   devenue:

fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0

   Pour plus d'informations concernant usermod, consultez la page de
   manuel en ligne.

  userdel

   userdel fait exactement ce que vous voulez, il efface le compte d'un
   utilisateur. Utilisez simplement:

userdel -r username

   L'option -r implique que tous les fichiers du rpertoire d'accueil
   d'un utilisateur seront effacs. Les fichiers situs en dehors du
   rpertoire d'accueil devront tre cherchs et effacs manuellement.

   Si vous souhaitez simplement vrouiller un compte au lieu de
   l'effacer, utilisez la commande passwd.

7.2 La commande passwd et la dure du mot de passe.

   La commande passwd a pour but de changer les mots de passe. De plus,
   elle est utilise par l'utilisateur root pour:
     * Vrouiller et dvrouiller des comptes (-l et -u),
     * Dfinir le nombre de jours de validit d'un mot de passe (-x),
     * Dfinir le nombre de jours minimums pour le changement de mot de
       passe (-n),
     * Dfinir le nombre de jours d'alerte concernant l'expiration d'un
       mot de passe(-w),
     * Dfinir le nombre de jours aprs que le mot de passe soit expir
       pour vrouiller le compte(-i),
     * Permettre de voir les informations concernant un utilisateur dans
       un format clair(-S).

   Par exemple, jetons un coup d'oeil  fred:

passwd -S fred
fred P 03/04/96 0 60 0 0

   Cela signifie que le mot de passe de fred est valide, qu'il a t
   chang pour la dernire fois le 04/03/96, qu'il peut tre chang 
   n'importe quel moment, qu'il expire au bout de 60 jours, que fred ne
   sera pas averti, et que le compte ne sera pas vrouill lors de
   l'expiration du mot de passe.

   Cela veut simplement dire que si fred se loge aprs l'expiration de
   son mot de passe, il lui sera demand de taper un nouveau mot de
   passe.

   Si nous souhaitons prvenir fred 14 jours avant l'expiration de son
   mot de passe, et vrouiller son compte 14 jours aprs l'avoir laiss
   expir, nous devrions faire la chose suivante:

passwd -w14 -i14 fred

   Maintenant les informations concernant fred sont changes en:

fred P 03/04/96 0 60 14 14

   Pour de plus amples informations concernant passwd, se rfrer au
   manuel en ligne.

7.3 Le fichier login.defs

   Le fichier /etc/login.defs est le fichier de configuration du
   programme login ainsi que celui de toute le _Suite Shadow_.

   Le fichier /etc/login.defs contient les paramtres allant de
   l'apparance de l'invite  l'expiration par dfaut concernant les mots
   de passe utilisateurs.

   Le fichier /etc/login.defs est assez bien document de part ses
   propres commentaires. De plus, il y a quelques points a noter:
     * Il contient des drapeaux qui peuvent tre activ ou dsactiv
       concernant la taille de journalisation,
     * Il contient des pointeurs sur d'autres fichiers de configuration,
     * Il contient les valeurs par dfaut comme la dure d'un mot de
       passe.

   Des informations prcdantes on peut en dduire que c'est un fichier
   important, vous devez tre sr qu'il existe et que les valeurs sont
   celles que vous dsirez pour votre systme.

7.4 Les mots de passe pour les groupes

   Le fichier /etc/groups peut contenir des mots de passe permettant  un
   utilisateur de devenir un membre d'un groupe particulier. Cette
   fonction est valide si vous validez la constante SHADOWGRP dans le
   fichier /usr/src/shadow-AAMMJJ/config.h.

   Si vous dfinissez cette constante et que vous compilez, vous devez
   crer un fichier /etc/gshadow pour stocker les mots de passe pour les
   groupes, ainsi que les informations concernant l'administration du
   groupe.

   Lorsque vous avez cr le fichier /etc/shadow, vous avez utilis un
   programme appel pwconv, il n'y a pas d'quivalent pour crer le
   fichier /etc/gshadow, mais ce n'est pas grave.

   Pour crer le fichier /etc/gshadow initial, faites la chose suivante:

touch /etc/gshadow
chown root.root /etc/gshadow
chmod 700 /etc/gshadow

   Une fois que vous crez un nouveau groupe, il sera ajout dans le
   fichier /etc/group ainsi que dans le fichier /etc/gshadow. Si vous
   modifiez un groupe en ajoutant, retirant, ou en changeant le mot de
   passe du groupe, le fichier /etc/gshadow sera chang.

   Les programmes groups, groupadd, groupmod, et groupdel sont fournis
   dans la _Suite Shadow_ pour modifier les groupes.

   Le format du fichier /etc/group est:

groupname:!:GID:member,member,...

   o:

   _groupname_
          Le nom du groupe,

   _!_
          Le champs contenant normalement le mot de passe qui est
          maintenant stock dans le fichier /etc/gshadow,

   _GID_
          L'identificateur numrique du groupe,

   _member_
          La liste des membres du groupe.

   Le format du fichier /etc/gshadow est:

groupname:password:admin,admin,...:member,member,...

   o:

   _groupname_
          Le nom du groupe,

   _password_
          Le mot de passe encod,

   _admin_
          La liste des administrateurs de groupe,

   _member_
          La liste des membres du groupe.

   La commande gpasswd est utilise pour ajouter, retirer des
   administrateurs et des membres d'un groupe. root ou un administrateur
   du groupe peut ajouter ou retirer des membres du groupe.

   Le mot de passe du groupe peut tre chang en utilisant le programme
   passwd par root ou un administrateur du groupe.

   En dpit du fait qu'il n'y ait pas encore de page de manuel pour
   gpasswd, tapez gpasswd sans paramtres pour obtenir la liste des
   options. C'est relativement facile de comprendre comment tout marche
   un fois que vous avez compris le format du fichier et les concepts.

7.5 Programmes de vrification de la structure

  pwck

   Le programme pwck est fourni pour vrifier la cohrence des fichiers
   /etc/passwd et /etc/shadow. Il vrifie chaque nom d'utilisateur ainsi
   que les points suivants:
     * Le nombre correct de champs,
     * Nom unique,
     * Nom et groupe valide,
     * Groupe primaire valide,
     * Rpertoire d'accueil valide,
     * Shell valide.

   Il prvient aussi lorsqu'un compte ne possde pas de mot de passe.

   C'est une bonne ide de lancer pwck aprs avoir install la _Suite
   Shadow_. C'est aussi une bonne ide de le lancer priodiquement, une
   fois par semaine ou par mois. Si vous utilisez l'option -r, vous
   pouvez utiliser cron pour lancer une analyse rgulire et avoir un
   rapport sous forme de courrier.

  grpck

   grpck est le programme de vrification de la cohrance des fichiers
   /etc/group et /etc/gshadow. Il effectue les vrifications suivantes:
     * Le nombre correct de champs,
     * Unicit du nom de groupe,
     * Validit de la liste des membres et des administrateurs.

   Il possde aussi l'option -r pour des rapports automatiques.

7.6 Les mots de passe "Accs  distance"

   Les mots de passe "Accs  distance" sont une autre ligne de dfense
   des systmes permettant la connexion  distance. Si vous avez un
   systme qui permet  des utilisateurs de se connecter localement ou
   par l'intermdiaire d'un rseau, mais vous voulez contrler qui peut
   appeler et se connecter, les mots de passe "Accs  distance" sont
   pour vous. Pour valider les mots de passe "Accs  distance", vous
   devez diter le fichier /etc/login.defs et vous assurer que
   DIALUPS_CHECK_ENAB est positionne  yes.

   Les deux fichiers contenant les informations d'accs  distance sont
   /etc/dialups et /etc/d_passwd. Le fichier /etc/dialups contient les
   terminaux (un par ligne, avec l'entte "/dev/" supprim). Si un
   terminal est list alors, la vrification d'accs  distance est
   effectue;.

   Le second fichier /etc/d_passwd contient le chemin complet d'un shell,
   suivit d'un mot de passe optionnel.

   Si un utilisateur se connecte  un terminal dcrit dans une ligne du
   fichier /etc/dialup et que son shell est list dans le fichier
   /etc/d_passwd alors l'accs lui est autoris en fournissant le mot de
   passe correct.

   Une autre possibilit utile des mots de passe "Accs  distance" est
   de spcifier un ligne qui ne permet qu'un certain type de connexion
   (PPP, ou UUCP par exemple). Si un utilisateur essaye d'avoir un autre
   type de connexion, (ie. une liste de shell), il doit connaitre un mot
   de passe pour l'utiliser.

   Avant de pouvoir utiliser les possibilits de l'accs  distance, vous
   devez crer les fichiers.

   La commande dpaswd est fournie pour assigner un mot de passe  un
   shell dans le fichier d_passwd. Lisez le manuel en ligne pour de plus
   amples informations.

8. Ajouter le support shadow  un programme en C.

   Ajouter le support shadow  un programme C est assez facile. Le seul
   problme est que le programme doit tre lanc par root (ou SUID root)
   pour qu'il puisse accder au fichier /etc/shadow.

   Ceci prsente un rel problme, il faut faire trs attention lors de
   la cration de programmes SUID. Par exemple, il ne faut pas qu'un
   programme SUID root puisse permettre un accs au shell.

   La meilleure solution pour qu'un programme puisse accder aux mots de
   passe encods sans tre SUID root, est de lancer ce programme SUID
   shadow  la place. C'est le cas par exemple du programme xlock.

   Dans l'exemple donn prcdemment, pppd-1.2.1d fonctionne dj SUID
   root, donc ajouter le support shadow ne le rendra pas plus vulnrable.

8.1 Les fichiers d'en-tte

   Les fichiers d'en-tte doivent tre stocks dans le rpertoire
   /usr/include/shadow. Le fichier /usr/include/shadow.h, doit tre un
   lien symbolique vers /usr/include/shadow/shadow.h.

   Pour ajouter le support shadow  un programme, vous devez inclure les
   fichiers de header:
#include <shadow/shadow.h>
#include <shadow/pwauth.h>

   La meilleure solution est d'utiliser des directives de compilation
   pour compiler conditionnellement le code shadow (Il y aura un exemple
   par la suite).

8.2 La bibliothque libshadow.a

   Quand vous avez install _l'ensemble shadow_, le fichier libshadow.a a
   t cr et install dans le rpertoire /usr/lib.

   Lorsque vous compilez un programme avec le support shadow, vous devez
   prciser  l'diteur de liens d'inclure la bibliothque libshadow.a
   dans le lien:

gcc programe.c -o program -lshadow

   Ceci dit, et vous le verrez par la suite dans notre exemple, la
   plupart des programmes plus ou moins gros utilisent un fichier
   Makefile, qui en gnral, utilise une variable appele LIBS=... que
   vous pourrez modifier.

8.3 La structure shadow

   La bibliothque libshadow.a utilise une structure appele spwd pour
   rcuprer les informations contenues dans le fichier /etc/shadow.
   Voici la dfinition de la structure spwd provenant de
   /usr/include/shadow/shadow.h:
     _________________________________________________________________

struct spwd
{
  char *sp_namp;         /* nom de login */
  char *sp_pwdp;         /* mot de passe encode */
  sptime sp_lstchg;      /* date de la derniere modification */
  sptime sp_min;         /* nombre de jours minimum entre les modifs */
  sptime spmax;          /* nombre de jours maximum entre les modifs*/
  sptime sp_warn;        /* nombre de jours de warning avant l'expiration
                            du mot de passe */
  sptime sp_inact;       /* nombre de jours d'utilisation du compte
                            apres l'expiration. */
  sptime sp_expire;      /* nombre de jours a partir du 01/01/70 jusqu'a
                               l'expiration du compte */
  unsigned long sp_flag; /* reserve pour une utilisation future */
};
     _________________________________________________________________

   L'_ensemble shadow_ peut placer des donnes dans le champ sp_pwdp
   juste aprs le mot de passe encod, le champ password pourrait
   contenir:

username:Npge08pfz4wuk;@/sbin/extra:9479:0:10000::::

   Cela signifie qu'en plus du mot de passe, le programme /sbin/extra
   sera appel pour procder  une authentification supplmentaire. Le
   programme appel recevra comme argument, le nom d'utilisateur et un
   _switch_ qui indiquera pourquoi il est appel. Regardez le fichier
   /usr/include/shadow/pwauth.h et le code source de pwauth.c pour plus
   d'informations.

   La fonction d'authentification pwauth est toujours utilise avant la
   deuxime authentification..

8.4 Les fonctions Shadow.

   Le fichier shadow.h contient aussi la dclaration des fonctions
   contenues dans la bibliothque libshadow.a:
     _________________________________________________________________

extern void setspent __P ((void));
extern void endspent __P ((void));
extern struct spwd *sgetspent __P ((__const char *__string));
extern struct spwd *fgetspent __P ((FILE *__fp));
extern struct spwd *getspent __P ((void));
extern struct spwd *getspnam __P ((__const char *__name));
extern int putspent __P ((__const struct spwd *__sp, FILE *__fp));
     _________________________________________________________________

   La fonction que nous allons tudier est getspnam, elle rcupre une
   structure spwd  partir d'un nom donn.

8.5 Exemple

   Voici un exemple d'ajout du support shadow  un programme qui en
   ncessite mais pour qui ce support n'existe pas par dfaut.

   Nous allons nous baser sur l'exemple du serveur pppd-1.2.1d ( _Serveur
   Point-to-Point protocol_) configur avec l'option _login_: il va
   chercher les mots de passe pour son authentification PAP dans le
   fichier /etc/passwd au lieu des fichiers PAP ou CHAP. Vous n'avez pas
   besoin d'ajouter ce code  pppd-2.2.0, c'est dj fait.

   Bien que cette possibilit de pppd ne soit pas trs utilise, elle ne
   fonctionnera plus ds lors que vous aurez install l'ensemble shadow:
   les mots de passe ne sont plus stocks dans /etc/passwd.

   La partie du code source d'authentification des utilisateurs avec
   pppd-1.2.1d se trouve dans le fichier
   /usr/src/pppd-1.2.1d/pppd/auth.c.

   Le code qui suit doit tre ajout au dbut du fichier, l o sont
   toutes les autres directives #include.
     _________________________________________________________________

#ifdef HAS_SHADOW
#include <shadow.h>
#include <shadow/pwauth.h>
#endif
     _________________________________________________________________

   Maintenant, il faut modifier le code actuel. Nous sommes toujours avec
   le fichier auth.c.

   La fonction auth.c avant les modifications:
     _________________________________________________________________

/*
 * login - Controle le nom d'utilisateur et le mot de passe par rapport
 * a ceux stockes sur le systeme.
 * Accepte la connection si l'utilisateur est OK.
 *
 * retourne:
 *      UPAP_AUTHNAK: Connection refusee.
 *      UPAP_AUTHACK: Connection Acceptee.
 * Dans un cas comme dans l'autre, msg pointe sur le message approprie.
 */
static int
login(user, passwd, msg, msglen)
    char *user;
    char *passwd;
    char **msg;
    int *msglen;
{
    struct passwd *pw;
    char *epasswd;
    char *tty;

    if ((pw = getpwnam(user)) == NULL) {
        return (UPAP_AUTHNAK);
    }
     /*
     * XXX Si il n'y a pas de mots de passe, accepte la connection.
     */
    if (pw->pw_passwd == '\0') {
        return (UPAP_AUTHACK);
    }

    epasswd = crypt(passwd, pw->pw_passwd);
    if (strcmp(epasswd, pw->pw_passwd)) {
        return (UPAP_AUTHNAK);
    }

    syslog(LOG_INFO, "user %s logged in", user);

    /*
     * Ecris une entree wtmp pour cet utilisateur.
     */
    tty = strrchr(devname, '/');
    if (tty == NULL)
        tty = devname;
    else
        tty++;
    logwtmp(tty, user, "");    /* Ajoute une entree wtmp de connection */
    logged_in = TRUE;

    return (UPAP_AUTHACK);
}
     _________________________________________________________________

   Le mot de passe de l'utilisateur est plac dans pw->pw_passwd, donc,
   nous devons ajouter la fonction getspnam qui placera le mot de passe
   dans spwd->sp_pwdp.

   Nous rajouterons la fonction pwauth pour l'authentification actuelle.
   Une seconde authentification sera effectue si le fichier shadow est
   configur pour.

   Voici la fonction auth.c apres les modifications pour le support de
   shadow:
     _________________________________________________________________

/*
 * login - Controle le nom d'utilisateur et le mot de passe par rapport
 * a ceux stockes sur le systeme.
 * Accepte la connection si l'utilisateur est OK.
 *
 * Cette fonction a ete modifiee pour etre compatible avec les mots de
 * passe Shadow Linux si USE_SHADOW a ete defini
 *
 * retourne:
 *      UPAP_AUTHNAK: Connection refusee.
 *      UPAP_AUTHACK: Connection Acceptee.
 * Dans un cas comme dans l'autre, msg pointe sur le message approprie.
 */

static int
login(user, passwd, msg, msglen)
    char *user;
    char *passwd;
    char **msg;
    int *msglen;
{
    struct passwd *pw;
    char *epasswd;
    char *tty;

#ifdef USE_SHADOW
    struct spwd *spwd;
    struct spwd *getspnam();
#endif

    if ((pw = getpwnam(user)) == NULL) {
        return (UPAP_AUTHNAK);
    }

#ifdef USE_SHADOW
    if ((spwd = getspnam(user)) == NULL) {
           pw->pw_passwd = "";
    } else {
    pw->pw_passwd = spwd->sp_pwdp;
    }
#endif

     /*
     *  XXX Si il n'y a pas de mots de passe, accepte la connection.
     */
    if (pw->pw_passwd == '\0') {
        return (UPAP_AUTHNAK);
    }
#ifdef HAS_SHADOW
    if ((pw->pw_passwd && pw->pw_passwd[0] == '@'
         && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL))
        || !valid (passwd, pw)) {
        return (UPAP_AUTHNAK);
    }
#else
    epasswd = crypt(passwd, pw->pw_passwd);
    if (strcmp(epasswd, pw->pw_passwd)) {
        return (UPAP_AUTHNAK);
    }
#endif

    syslog(LOG_INFO, "user %s logged in", user);

    /*
     * Ecris une entree wtmp pour cet utilisateur.
     */
    tty = strrchr(devname, '/');
    if (tty == NULL)
        tty = devname;
    else
        tty++;
    logwtmp(tty, user, "");     /* Ajoute une entree wtmp de connection  */
    logged_in = TRUE;

    return (UPAP_AUTHACK);
}
     _________________________________________________________________

   En examinant prcisment le code, vous verrez que d'autres
   modifications ont t effectues. La version originale autorisait
   l'accs (en retournant UPAP_AUTHACK) quand il n'y avait pas de mots de
   passe dans le fichier passwd. Il ne fallait _pas_ laisser ceci car
   utilis avec l'option login, pppd utilise le nom d'utilisateur dans
   /etc/passwd et le mot de passe dans /etc/shadow pour son
   authentification PAP.

   Donc si nous avions gard la version originale, n'importe qui aurait
   pu tablir une connexion ppp avec un mot de passe vide.

   Nous avons arrang a en retournant UPAP_AUTHNAK  la place de
   UPAP_AUTHACK dans le cap ou le champ mot de passe est vide.

   A savoir que pppd-2.2.0 possde le mme problme.

   Nous devons modifier le Makefile pour que deux choses soient prises en
   compte: USE_SHADOW doit tre dfini, et libshadow.a doit tre ajout
   au processus d'dition de liens.

   Editez le Makefile, et ajoutez:

LIBS = -shadow

   Alors, trouvez la ligne:

COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t

   et replacez-la par:

COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW

   Maintenant, lancez make et installez.

9. Foire Aux Questions

   _Q:_ J'essaye de contrler sur quel terminal root peut se connecter en
   utilisant /etc/securettys, mais il semble que cela ne marcher plus.
   Qu'arrive-t-il ?

   _R:_ Les fichier /etc/securettys ne fait absolument rien lorsque la
   _Suite Shadow_ est installe. Le terminal  partir duquel root peut se
   connecter et maintenant situ dans le fichier /etc/login.defs.
   L'entre dans ce fichier peut pointer sur un autre fichier.

   _Q:_ J'ai install la _Suite Shadow_, mais je ne peux plus me
   connecter, qu'ai-je oubli ?

   _R:_ Vous avez probablement install les programmes, mais vous n'avez
   trs certainement pas excut pwconv ou bien vous avez oubli de
   copier le fichier /etc/npasswd vers le fichier /etc/passwd ainsi que
   le fichier /etc/nshadow vers le fichier /etc/shadow. De plus vous
   aurez besoin de placer le fichier login.defs dans le rpertoire /etc/.

   _Q:_ Dans la section sur xlock, il est dit de positionner le groupe
   propitaire du fichier /etc/shadow  shadow. Je n'ai pas de groupe
   shadow, comment je fais ?

   _R:_ Vous pouvez en ajouter un. Editez simplement le fichier
   /etc/group et insrez une ligne pour le groupe shadow. Vous devez vous
   assurer que le numro du groupe n'est pas dj utilis par un autre
   groupe, de plus vous devez l'insrer avant l'entre nogroup. Ou bien
   vous pouvez positionner le bit suid du programme xlock  root.

   _Q:_ Y-a-t'il une liste de diffusion pour la suite Shadow password de
   Linux ?

   _R:_ Oui, mais c'est pour le dveloppement et les tests des bta
   versions de la prochaine Suite Shadow pour Linux. Vous pouvez vous y
   inscrire en envoyant un courrier :
   shadow-list-request@neptune.cin.net avec pour sujet subscribe. La
   liste est actuellement en cours de discussion  propos des parutions
   des series shadow-AAMMJJ. Vous devriez vous inscrire si vous souhaitez
   vous investir dans le dveloppement ou bien si vous venez d'installer
   la suite sur votre systme et que vous souhaitez vous tenir inform
   des nouvelles parutions.

   _Q:_ J'ai install la _Suite Shadow_, mais lorsque j'utilise la
   commande userdel, j'obtiens, ``_userdel: cannot open shadow group
   file''_, qu'est-ce que j'ai fait de travers ?

   _R:_ Vous avez compil la suite avec l'option SHADOWGRP de valid,
   mais vous ne possdez pas de fichier /etc/gshadow. Vous avez besoin
   d'diter le fichier config.h et de recompiler la suite. Allez voir la
   section sur les groupes shadow.

   _Q:_ J'ai install la _Suite Shadow_ mais je retrouve des mot de passe
   encods dans mon fichier /etc/passwd, qu'est-ce qui ne va pas ?

   _R:_ Soit vous avez compil la suite avec l'option AUTOSHADOW du
   fichier config.h, soit votre libc a t compile avec l'option
   SHADOW_COMPAT. Vous devez dterminer quel est votre problme et
   recompilez.

10. Copyright.

   La version originale de ce document est place sous copyright (c) 1996
   de Michael H. Jackson.

   Ce document peut tre reproduit et distribu en tout ou partie, sur
   tout support physique ou lectronique,  condition que cette notice
   soit incluse dans chacune des copies.

   Il est permis de copier et distribuer des versions modifies de ce
   document dans les conditions ci-dessus. Une notice doit apparatre
   spcifiant bien qu'il s'agit d'une version modifie.

   Il est permis de copier et distribuer des versions traduites dans
   d'autres langues, dans les conditions gnrales cites prcdemment.

   Il est permis de diffuser ce document sous un autre support selon les
   clauses stipules plus haut concernant les versions modifies du
   document, et sous rserve que celle spcifiant la disponibilit du
   code source soit remplie sous la forme d'une rfrence vidente sur ce
   code dans ce nouveau support. Le propritaire du copyright se rserve
   le droit de trancher lorsqu'il y a le moindre doute sur cette
   dfinition "d'vidence".

11. Divers et Remerciements

   Les exemples de code pour auth.c proviennent de pppd-1.2.1d et
   ppp-2.1.0e, Copyright (c) 1993 de l'Universit Nationale D'Australie
   et Copyright (c) 1989 de Universit Carnegie Mellon.

   Merci  Marek Michalkiewicz <marekm@il7linuxb.ists.pwr.wroc.pl> pour
   crire et maintenir la _Suite Shadow pour Linux_ ainsi que pour ses
   commentaires sur ce document.

   Merci  Ron Tidd <rtidd@tscnet.com> pour sa prcieuse aide et ses
   tests.

   Merci  tous ceux qui m'ont envoy des commentaires qui ont permis
   d'amliorer ce document.

   S'il vous plait, si vous avez des suggestions ou des commentaires,
   envoyez-moi un courrier.

   amitis

   Mickael H. Jackson <mhjack@tscnet.com>
