6.50. Shadow-4.0.18.1

Le paquet Shadow contient des programmes de gestion de mots de passe d'une façon sécurisée.

Temps de construction estimé : 0.3 SBU
Espace disque requis : 20.7 MB

6.50.1. Installation de Shadow

[Note]

Note

Si vous aimeriez multiplier l'usage des mots de passe efficaces, reportez-vous à http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cracklib.html pour l'installation de Cracklib avant de compiler Shadow. Puis ajoutez --with-libcrack à la commande configure ci-dessous.

Réparez un bogue dans les programmes useradd et usermod qui les empêche d'accepter des noms de groupe plutôt que des nombres ID de groupe avec -g :

patch -Np1 -i ../shadow-4.0.18.1-useradd_fix-2.patch

Préparez la compilation de Shadow :

./configure --libdir=/lib --sysconfdir=/etc --enable-shared \
    --without-selinux

Voici la signification des options de configuration :

--without-selinux

Le support pour SELinux est activé par défaut, mais selinux n'est pas compilé dans un système LFS de base. Le script configure échouera si vous n'utilisez pas cette option.

Désactivez l'installation du programme groups et de sa page man car Coreutils fournit une meilleure version :

sed -i 's/groups$(EXEEXT) //' src/Makefile
find man -name Makefile -exec sed -i 's/groups\.1 / /' {} \;

Désactivez l'installation des pages de manuel en chinois et en coréen, puisque Man-DB ne peut pas les formater correctement :

sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile

Shadow fournit d'autres pages de manuel dans l'encodage UTF-8. Man-DB peut afficher ces dernières dans les encodages recommandés en utilisant le script convert-mans que nous avons installé :

for i in de es fi fr id it pt_BR; do
    convert-mans UTF-8 ISO-8859-1 man/${i}/*.?
done

for i in cs hu pl; do
    convert-mans UTF-8 ISO-8859-2 man/${i}/*.?
done

convert-mans UTF-8 EUC-JP man/ja/*.?
convert-mans UTF-8 KOI8-R man/ru/*.?
convert-mans UTF-8 ISO-8859-9 man/tr/*.?

Au lieu d'utiliser la méthode crypt par défaut, utilisez la méthode MD5 plus sécurisée du chiffrement de mot de passe, qui autorise aussi les mots de passe plus longs que huit caractères. Il est également nécessaire de changer l'endroit obsolète de /var/spool/mail pour les boîtes e-mail de l'utilisateur que Shadow utilise par défaut en l'endroit /var/mail utilisé actuellement :

sed -i -e 's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \
    -e 's@/var/spool/mail@/var/mail@' etc/login.defs
[Note]

Note

Si vous avez compilé Shadow avec le support pour Cracklib, lancez ce qui suit :

sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' \
    etc/login.defs

Compilez le paquet :

make

Ce paquet n'est pas fourni avec une suite de tests.

Installez le paquet :

make install

Déplacez un programme mal placé au bon endroit :

mv -v /usr/bin/passwd /bin

Déplacez les bibliothèques de Shadow dans des emplacements plus appropriés :

mv -v /lib/libshadow.*a /usr/lib
rm -v /lib/libshadow.so
ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so

6.50.2. Configuration de Shadow

Ce paquet contient des outils pour ajouter, modifier, supprimer des utilisateurs et des groupes, initialiser et changer leur mots de passe, et bien d'autres tâches administratives. Pour une explication complète de ce que signifie password shadowing, jetez un œil dans le fichier doc/HOWTO à l'intérieur du répertoire source. Il reste une chose à garder à l'esprit si vous décidez d'utiliser le support de Shadow : les programmes qui ont besoin de vérifier les mots de passe (gestionnaires d'affichage, programmes FTP, démons pop3 et ainsi de suite) ont besoin d'être compatible avec shadow, c'est-à-dire qu'ils ont besoin d'être capables de fonctionner avec des mots de passe shadow.

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

pwconv

Pour activer les mots de passe shadow pour les groupes, lancez :

grpconv

La configuration fournie avec Shadow pour l'utilitaire useradd ne convient pas aux systèmes LFS. Utilisez les commandes pour changer le répertoire personnel par défaut des nouveaux utilisateurs et empêcher la création de fichiers de traçage de mail :

useradd -D -b /home
sed -i 's/yes/no/' /etc/default/useradd

6.50.3. Configurer le mot de passe de root

Choisissez un mot de passe pour l'utilisateur root et configurez-le avec :

passwd root

6.50.4. Contenu de Shadow

Programmes installés: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, lastlog, login, logoutd, newgrp, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (lien vers newgrp), su, useradd, userdel, usermod, vigr (lien vers vipw) et vipw
Bibliothèques installées: libshadow.{a,so}

Descriptions courtes

chage

Utilisé pour modifier le nombre maximum de jours entre des modifications obligatoires du mot de passe

chfn

Utilisé pour modifier le nom complet de l'utilisateur et quelques autres informations

chgpasswd

Utilisée pour mettre à jour des mots de passe de groupe en ligne de commande

chpasswd

Utilisée pour mettre à jour les mots de passe utilisateur en ligne de commande

chsh

Utilisé pour modifier le shell de connexion par défaut d'un utilisateur

expiry

Vérifie et renforce la politique d'expiration des mots de passe

faillog

Est utilisé pour examiner les traces d'échecs de connexions, pour configurer le nombre maximum d'échecs avant qu'un compte ne soit bloqué ou pour réinitialiser le nombre d'échecs

gpasswd

Est utilisé pour ajouter et supprimer des membres et des administrateurs aux groupes

groupadd

Crée un groupe avec le nom donné

groupdel

Supprime le groupe ayant le nom donné

groupmems

Permet à un utilisateur d'administrer la liste des membres de son groupe sans avoir besoin des privilèges du super utilisateur

groupmod

Est utilisé pour modifier le nom ou le GID du groupe

grpck

Vérifie l'intégrité des fichiers /etc/group et /etc/gshadow

grpconv

Crée ou met à jour le fichier shadow à partir du fichier group standard

grpunconv

Met à jour /etc/group à partir de /etc/gshadow puis supprime ce dernier

lastlog

Indique les connexions les plus récentes de tous les utilisateurs ou d'un utilisateur donné

login

Est utilisé par le système pour permettre aux utilisateurs de se connecter

logoutd

Est un démon utilisé pour renforcer les restrictions sur les temps et ports de connexion

newgrp

Est utilisé pour modifier le GID courant pendant une session de connexion

newusers

Est utilisé pour créer ou mettre à jour toute une série de comptes utilisateur en une fois

nologin

Affiche un message selon lequel un compte n'est pas disponible. Destiné à être utilisé comme shell par défaut pour des comptes qui ont été désactivés

passwd

Est utilisé pour modifier le mot de passe d'un utilisateur ou d'un groupe

pwck

Vérifie l'intégrité des fichiers de mots de passe, /etc/passwd et /etc/shadow

pwconv

Crée ou met à jour le fichier de mots de passe shadow à partir du fichier password habituel

pwunconv

Met à jour /etc/passwd à partir de /etc/shadow puis supprime ce dernier

sg

Exécute une commande donnée lors de l'initialisation du GID de l'utilisateur à un groupe donné

su

Lance un shell en substituant les ID de l'utilisateur et du groupe

useradd

Crée un nouvel utilisateur avec le nom donné ou met à jour les informations par défaut du nouvel utilisateur

userdel

Supprime le compte utilisateur indiqué

usermod

Est utilisé pour modifier le nom de connexion de l'utilisateur, son UID (User Identification, soit Identification Utilisateur), shell, groupe initial, répertoire personnel et ainsi de suite

vigr

Édite les fichiers /etc/group ou /etc/gshadow

vipw

Édite les fichiers /etc/passwd ou /etc/shadow

libshadow

Contient des fonctions utilisées par la plupart des programmes de ce paquet