Contenu
Vous pouvez trouver une liste des fichiers installés ainsi que leurs descriptions courtes sur http://lfs.traduc.org/view/lfs-stable/chapter06/shadow.html#contents-shadow.
Shadow a effectivement été installé dans LFS et il n'y a aucune raison pour le réinstaller, sauf si vous avez installé CrackLib ou Linux-PAM après que votre système LFS ai été terminé. Si vous avez installé CrackLib après LFS, la réinstallation de Shadow activera le support des mots de passe renforcés. Si vous avez installé Linux-PAM, la réinstallation de Shadow permettra à des programmes tels que login et su d'utiliser PAM.
Ce paquet est connu pour se construire correctement sur une plateforme LFS-7.2.
Téléchargement (HTTP) : http://pkg-shadow.alioth.debian.org/releases/shadow-4.1.5.1.tar.bz2
Somme de contrôle MD5 du téléchargement : a00449aa439c69287b6d472191dc2247
Taille du téléchargement : 2.1 Mo
Estimation de l'espace disque requis : 38 Mo
Estimation du temps de construction : 0.3 SBU
Linux-PAM-1.1.6 ou CrackLib-2.8.19
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/shadow
Les commandes d'installation indiquées ci-dessous valent pour les installations où on a installé Linux-PAM (avec ou sans installation CrackLib) et Shadow devra être réinstallé pour supporter l'installation Linux-PAM.
Si vous réinstallez Shadow pour
offrir le support des mots de passe forts en utilisant la
bibliothèque CrackLib sans
utiliser Linux-PAM, assurez-vous
d'ajouter le paramètre --with-libcrack
au script
configure
ci-dessous et lancez aussi la commande suivante :
sed -i 's@DICTPATH.*@DICTPATHt/lib/cracklib/pw_dict@' etc/login.defs
Réinstallez Shadow en lançant les commandes suivantes :
sed -i 's/groups$(EXEEXT) //' src/Makefile.in && find man -name Makefile.in -exec sed -i 's/groups.1 / /' {} ; && sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile.in && sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' -e 's@/var/spool/mail@/var/mail@' etc/login.defs && sed -i -e 's@PATH=/sbin:/bin:/usr/sbin:/usr/bin@&:/usr/local/sbin:/usr/local/bin@' -e 's@PATH=/bin:/usr/bin@&:/usr/local/bin@' etc/login.defs && ./configure --prefix=/usr --sysconfdir=/etc && make
Ce paquet n'est pas fourni avec une suite de tests.
Maintenant, en tant qu'utilisateur root
:
make install && mv -v /usr/bin/passwd /bin
sed -i 's/groups$(EXEEXT) //' src/Makefile.in : Cette commande est utilisée pour supprimer l'installation du programme groups vu qu'on préfère la version issue du paquet Coreutils installé avec LFS.
find man -name Makefile.in -exec ... {} ; : Cette commande est utilisée pour supprimer l'installation des pages de man groups pour que ceux existant et issus du paquet Coreutils ne sont pas remplacés.
sed -i -e '...' -e '...' man/Makefile.in : Cette commande désactive l'installation des pages de manuel chinoises et coréennes, vu que Man-DB ne peut pas les formatter correctement.
sed -i -e 's@#ENCRYPT_METHOD
DES@ENCRYPT_METHOD SHA512@' -e 's@/var/spool/mail@/var/mail@'
etc/login.defs : Au lieu d'utiliser la méthode
'DES' par défaut, cette commande modifie l'installation pour
utiliser la méthode plus sécurisé 'SHA512' de chiffrement des mots
de passe plus sécurisée, qui autorise aussi les mots de passe d'une
longueur supérieure huit caractères. Elle modifie aussi
l'emplacement /var/spool/mail
obsolète pour les boîtes aux lettres utilisateur qu'utilise
Shadow par défaut en emplacement
/var/mail
.
sed -i -e
's@PATH=/sbin:/bin:/usr/sbin:/usr/bin@&:/usr/local/sbin:/usr/local/bin@'
-e 's@PATH=/bin:/usr/bin@&:/usr/local/bin@'
etc/login.defs : Cette commande sed ajoute au
PATH /usr/local/bin
pour les
utilisateurs normaux et pour l'utilisateur root
et /usr/local/sbin
pour l'utilisateur root
seulement.
mv -v /usr/bin/passwd
/bin : Le programme passwd peut être nécessaire aux
moments où le système de fichiers /usr
n'est pas monté pour qu'il soit déplacé dans
la partition racine.
La configuration stock de Shadow
pour l'outil useradd
peut ne pas être désirable pour votre installation. Un paramètre
par défaut a pour conséquence que useradd crée un fichier de boîte
aux lettres pour chaque nouvel utilisateur créé. useradd donnera l'appartanenance
de ce groupe au groupe mail
avec
les droits 0660. Si vous préféreriez que ces fichiers boîtes aux
lettres ne soient pas créés par useradd, lancez la commande
suivante en tant qu'utilisateur root
:
sed -i 's/yes/no/' /etc/default/useradd
Le reste de cette page est consacré à la configuration de Shadow pour fonctionner correctement avec Linux-PAM. Si vous n'avez pas installé Linux-PAM et si vous avez réinstallé Shadow pour supporter les mots de passe forts via la bibliothèque CrackLib, aucune configuration supplémentaire n'est nécessaire.
La configuration de votre système pour utiliser Linux-PAM peut être une tâche complexe. Les informations ci-dessous fourniront un paramétrage de base pour que la fonctionnalité de connexion et de mot de passe de Shadow fonctionne bien avec Linux-PAM. Regardez les informations et les liens sur la page Linux-PAM-1.1.6 pour des informations de configuration supplémentaires. Pour des informations spécifiques à l'intégration de Shadow, Linux-PAM et CrackLib, vous pouvez visiter les liens suivants :
Le programme login effectue actuellement
beaucoup de fonctions que les modules Linux-PAM devraient maintenant gérer. La
commande sed
suivante va commenter les lignes adéquates dans /etc/login.defs
et arrêter login d'effectuer ces
fonctions (un fichier de sauvegarde appelé /etc/login.defs.orig
est également créé pour
préserver le contenu du fichier d'origine). Exécutez les
commandes suivantes en tant qu'utilisateur root
:
install -v -m644 /etc/login.defs /etc/login.defs.orig && for FUNCTION in FAIL_DELAY FAILLOG_ENAB LASTLOG_ENAB MAIL_CHECK_ENAB OBSCURE_CHECKS_ENAB PORTTIME_CHECKS_ENAB QUOTAS_ENAB CONSOLE MOTD_FILE FTMP_FILE NOLOGINS_FILE ENV_HZ PASS_MIN_LEN SU_WHEEL_ONLY CRACKLIB_DICTPATH PASS_CHANGE_TRIES PASS_ALWAYS_WARN CHFN_AUTH ENCRYPT_METHOD ENVIRON_FILE do sed -i "s/^${FUNCTION}/# &/" /etc/login.defs done
Comme indiqué précédemment dans les instructions pour
Linux-PAM, Linux-PAM supporte deux méthodes de
configuration. Les commandes ci-dessous supposent que vous avez
choisi d'utiliser une configuration basée sur le répertoire, où
chaque programme a son propre fichier de configuration. Vous
pouvez éventuellement utiliser un seul fichier de configuration
/etc/pam.conf
en utilisant le
texte de configuration des fichiers ci-dessous, en fournissant
le nom du programme comme champ en premier supplémentaire à
chaque ligne.
En tant qu'utilisateur root
,
remplacez les fichiers de configuration Linux-PAM suivants dans le répertoire
/etc/pam.d/
(ou ajoutez le
contenu du fichier /etc/pam.conf
)
en utilisant les commandes suivantes :
cat > /etc/pam.d/system-account << "EOF"
# Début de /etc/pam.d/system-account
account required pam_unix.so
# Fin de /etc/pam.d/system-account
EOF
cat > /etc/pam.d/system-auth << "EOF"
# Début de /etc/pam.d/system-auth
auth required pam_unix.so
# Fin de /etc/pam.d/system-auth
EOF
cat > /etc/pam.d/system-password << "EOF"
# Début de /etc/pam.d/system-password
# vérifie la force des nouveaux mots de passe (man pam_cracklib)
password required pam_cracklib.so type=Linux retry=3 difok=5 difignore=23 minlen=9 dcredit=1 ucredit=1 lcredit=1 ocredit=1 dictpath=/lib/cracklib/pw_dict
# utilisation de sha512 hash pour le cryptage, et utilisation des jetons
# d'authentication (chosen password) initialisé par pam_cracklib
# (ou un des précédents modules)
password required pam_unix.so sha512 shadow use_authtok
# Fin de /etc/pam.d/system-password
EOF
Dans sa configuration par défaut, en fonction des droits,
pam_cracklib permettra des mots de passe avec plusieurs
casses aussi brefs que 6 caractères, même avec la valeur
minlen
réglé sur 11.
Vous devriez relire la page de man de pam_cracklib(8) et
déterminer si ces valeurs par défaut sont acceptables pour la
sécurité de votre système.
cat > /etc/pam.d/system-password << "EOF"
# Début de /etc/pam.d/system-password
# utilisation de sha512 hash pour le cryptage, et essaie d'utiliser un des jetons d'authentification
# défini précédement (chosen password) initialisé par un des modules anterieurs
password required pam_unix.so sha512 shadow try_first_pass
# Fin de /etc/pam.d/system-password
EOF
cat > /etc/pam.d/system-session << "EOF"
# Début de /etc/pam.d/system-session
session required pam_unix.so
# Fin de /etc/pam.d/system-session
EOF
cat > /etc/pam.d/login << "EOF"
# Début de /etc/pam.d/login
# Initialise le delai après un echec avant un nouveau prompt à 3 seconds
auth optional pam_faildelay.so delay=3000000
# Vérifie pour être certain que l'utilisateur est autorisé à se loguer
auth requisite pam_nologin.so
# Vérifie pour être certain que root est autorisé à se loguer
# Désactivé par défaut. Vous devez créer le fichier /etc/securetty
# pour que ce module fonctionne. Voir man 5 securetty.
#auth required pam_securetty.so
# Appartenances aux groupes supplémentaires - désactivé par défaut
#auth optional pam_group.so
# Inclure les paramètres d'authentification par défaut
auth include system-auth
# Vérifie l'acces pour l'utilisateur
account required pam_access.so
# Inclure les paramètres pour le compte par défaut
account include system-account
# Initialise les variables d'environnement par défaut pour l'utilisateur
session required pam_env.so
# Initialise les limites de ressource pour l'utilisateur
session required pam_limits.so
# Affiche la date du dernier login - Désactivé par défaut
#session optional pam_lastlog.so
# Affiche le message du jour - Désactivé par défaut
#session optional pam_motd.so
# Vérifie les mails de l'utilisateur - Désactivé par défaut
#session optional pam_mail.so standard quiet
# Inclure la session par defaut et les paramètres du mot de passe
session include system-session
password include system-password
# Fin de /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Début de /etc/pam.d/passwd
password include system-password
# Fin de /etc/pam.d/passwd
EOF
cat > /etc/pam.d/su << "EOF"
# Début de /etc/pam.d/su
# Autorise toujours root
auth sufficient pam_rootok.so
auth include system-auth
# Inclure les paramètres pour le compte par défaut
account include system-account
# Initialise les variables d'environnement par défaut pour l'utilisateur
session required pam_env.so
# Inclure la session par défaut
session include system-session
# Fin de /etc/pam.d/su
EOF
cat > /etc/pam.d/chage << "EOF"
# Début de /etc/pam.d/chage
# Autorise toujours root
auth sufficient pam_rootok.so
# Inclure les valeurs système par défaut pour l'authentification du compte et la session
auth include system-auth
account include system-account
session include system-session
# Permet toujours les mises à jour de l'authentification
password required pam_permit.so
# Fin de /etc/pam.d/chage
EOF
for PROGRAM in chfn chgpasswd chpasswd chsh groupadd groupdel groupmems groupmod newusers useradd userdel usermod do install -v -m644 /etc/pam.d/chage /etc/pam.d/${PROGRAM} sed -i "s/chage/$PROGRAM/" /etc/pam.d/${PROGRAM} done
À cette étape, vous devriez faire un simple test pour voir si
Shadow fonctionne comme
prévu. Ouvrez un autre terminal et connectez-vous en tant
qu'utilisateur, puis su en root
. Si vous ne voyez pas d'erreurs,
tout va bien et vous devriez poursuivre le reste de la
configuration. Si vous avez reçu des erreurs, arrêtez-vous
maintenant et vérifiez à deux reprises les fichiers de
configuration ci-dessus à la main. Vous pouvez aussi lancer
la suite de tests à partir du paquet Linux-PAM pour vous aider à déterminer
le problème. Si vous n'arrivez pas à trouver et à corriger
l'erreur, vous devriez recompiler Shadow en ajoutant le paramètre
--without-libpam
à la commande
configure cdans
les instructions ci-dessus (déplacez aussi le fichier de
sauvegarde /etc/login.defs.orig
dans /etc/login.defs
). Si vous
n'arrivez pas à faire cela et si les erreurs demeurent, vous
ne pourrez pas vous connecter à votre système.
Actuellement, /etc/pam.d/other
est configuré pour autoriser n'importe qui à ayant un compte
sur la machine à utiliser des programmes utilisant PAM sans
fichier de configuration pour ce programme. Après avoir testé
la bonne configuration de Linux-PAM, installez un fichier
other
plus restrictif afin que
les fichiers de configuration spécifiques au programme soient
requis :
cat > /etc/pam.d/other << "EOF"
# Début de /etc/pam.d/other
auth required pam_warn.so
auth required pam_deny.so
account required pam_warn.so
account required pam_deny.so
password required pam_warn.so
password required pam_deny.so
session required pam_warn.so
session required pam_deny.so
# Fin de /etc/pam.d/other
EOF
Au lieu d'utiliser le fichier /etc/login.access
pour contrôler l'accès au
système, Linux-PAM utilise le
module pam_access.so
ainsi que le
fichier /etc/security/access.conf
. Renommez le
fichier /etc/login.access
en
utilisant la commande suivante :
[ -f /etc/login.access ] && mv -v /etc/login.access{,.NOUSE}
Au lieu d'utiliser le fichier /etc/limits
pour limiter l'utilisation des
ressources système, Linux-PAM
utilise le module pam_limits.so
ainsi que le fichier /etc/security/limits.conf
. Renommez le
fichier /etc/limits
en utilisant
la commande suivante :
[ -f /etc/limits ] && mv -v /etc/limits{,.NOUSE}
Vous pouvez trouver une liste des fichiers installés ainsi que leurs descriptions courtes sur http://lfs.traduc.org/view/lfs-stable/chapter06/shadow.html#contents-shadow.
Last updated on : 2012-08-01 01:44:40 +020