Installer Shadow-4.0.3

Estimation du temps de construction :           0,4 SBU
Estimation de l'espace disque requis :  11 Mo

Contenu de Shadow

Le package Shadow a été créé pour augmenter la sécurité des mots de passe du système.

Programmes installés : chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (lien vers newgrp), useradd, userdel, usermod, vigr (lien vers vipw) et vipw

Dépendances d'installation de Shadow

Shadow dépend de Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

Installation de Shadow

Les programmes login, getty et init (ainsi que quelques autres) maintiennent des journaux pour enregistrer qui est ou était connecté au système. Néanmoins, ces programmes ne créent pas ces journaux lorsque ceux-ci n'existent pas. Donc, si vous souhaitez que ces traces soient générées, vous devrez créer ces fichiers vous-même. Le package Shadow doit détecter ces fichiers au bon endroit, donc nous les créons maintenant avec de bons droits :

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}

Le fichier /var/run/utmp contient la liste des utilisateurs actuellement connectés, le fichier /var/log/wtmp ceux qui l'étaient et quand. Le fichier /var/log/lastlog affiche pour chaque utilisateur quand il, ou elle, s'est connecté la dernière fois alors que le fichier /var/log/btmp contient les tentatives échouées de connexion.

Shadow code en dur le chemin vers le binaire passwd à l'intérieur du binaire lui-même mais fait cela d'une mauvaise façon. Si un binaire passwd n'est pas présent lors de l'installation de Shadow, le package suppose de manière erronée que celui-ci se trouve dans /bin mais l'installe ensuite dans /usr/bin. Ceci amène des erreurs sur l'absence de /bin/passwd. Pour contourner ce problème, créez un fichier passwd de façon à ce qu'il soit bien codé :

touch /usr/bin/passwd

La suite actuelle Shadow a un problème avec la commande newgrp faisant échouer celle-ci. Le correctif suivant (apparaissant aussi dans le code CVS de Shadow) corrige ce problème :

patch -Np1 -i ../shadow-4.0.3-newgrp-fix.patch

Maintenant, préparez la compilation de Shadow :

./configure --prefix=/usr --libdir=/usr/lib --enable-shared

Compilez le paquet :

make

Et installez-le :

make install

Shadow utilise deux fichiers pour configurer les paramétrages d'authentification du système. Installez ces deux fichiers de configuration :

cp etc/{limits,login.access} /etc

Nous voulons modifier la méthode de cryptage du mot de passe en activant les mots de passe MD5 théoriquement plus sécurisés qu'avec la méthode par défaut, crypt, et permettant en plus des mots de passe dépassant huit caractères. Nous avons aussi besoin de changer l'ancien emplacement /var/spool/mail des boîtes mail des utilisateurs par l'emplacement actuel, /var/mail. Nous faisons cela en modifiant le fichier de configuration correct lors de sa copie :

sed -e 's%/var/spool/mail%/var/mail%' \
    -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \
    etc/login.defs.linux > /etc/login.defs

Note : Faites attention en tapant la commande ci-dessus. Il est probablement plus sûr de la copier et coller plutôt que d'essayer de la taper entièrement.

En accord avec la page man de vipw, un programme vigr devrait aussi exister. Comme la procédure d'installation ne crée pas ce programme, créons le lien symbolique manuellement :

ln -s vipw /usr/sbin/vigr

Comme le lien symbolique /bin/vipw est redondant (et pointe même vers un fichier inexistant), supprimez-le :

rm /bin/vipw

Maintenant, déplacez le programme sg à son bon emplacement :

mv /bin/sg /usr/bin

Et déplacez les bibliothèques partagées de Shadow à un endroit plus approprié :

mv /usr/lib/lib{shadow,misc}.so.0* /lib

Comme certains packages s'attendent à trouver les bibliothèques tout juste déplacées dans /usr/lib, créez les liens symboliques suivants :

ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so

Coreutils a déjà installé un programme groups dans /usr/bin. Si vous le souhaitez, vous pouvez supprimer celui installé par Shadow :

rm /bin/groups

Configurer Shadow

Ce paquet contient des utilitaires pour modifier les mots de passe des utilisateurs, ajouter ou supprimer des utilisateurs et groupes, et plus encore. Nous n'allons pas expliquer ce que signifie 'shadow password'. Une explication complète peut être lue dans le fichier doc/HOWTO compris dans l'arborescence des sources du paquet Shadow. Il y a une chose que vous devez garder à l'esprit, si vous décidez d'activer le support de Shadow : les programmes qui ont besoin de vérifier des mots de passe (comme xdm, les démons ftp, pop3, etc) doivent être compatibles avec Shadow, c'est-à-dire qu'ils doivent être capables de travailler avec des mots de passe Shadow.

Pour activer les mots de passe shadow, lancez la commande suivante :

/usr/sbin/pwconv

Et pour activer les mots de passe shadow pour les groupes, lancez la commande suivante :

/usr/sbin/grpconv

Sous des circonstances normales, vous n'avez pas encore créé de mots de passe. Néanmoins, si vous retournez dans cette section pour activer les mots de passe Shadow, vous devriez réinitialiser les mots de passe de tous les utilisateurs avec la commande passwd ainsi que les mots de passe de tous les groupes en utilisant la commande gpasswd.