Shadow ya fué instalado en LFS y no hay razón para reinstalarlo a menos que instales Linux-PAM. Si lo haces, esto permitirá a programas como login y su utilizar PAM.
Descarga (FTP): ftp://ftp.pld.org.pl/software/shadow/shadow-4.0.7.tar.bz2
Suma MD5 del paquete: 89ebec0d1c0d861a5bd5c4c63e5cb0cc
Tamaño del paquete: 1.0 MB
Estimación del espacio necesario en disco: 13.2 MB
Tiempo estimado de construcción: 0.31 SBU
Parche para corregir un error en el programa lastlog: http://www.linuxfromscratch.org/blfs/downloads/svn/shadow-4.0.7-fix_lastlog-1.patch
Reinstala Shadow ejecutando los siguientes comandos:
patch -Np1 -i ../shadow-4.0.7-fix_lastlog-1.patch &&
./configure --libdir=/lib --enable-shared \
--with-libpam --without-libcrack &&
sed -i 's/groups$(EXEEXT) //' src/Makefile &&
sed -i '/groups/d' man/Makefile &&
make
Ahora, como usuario root:
make install &&
mv -v /usr/bin/passwd /bin &&
mv -v /lib/libshadow.*a /usr/lib &&
rm -v /lib/libshadow.so &&
ln -v -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
--without-libcrack: Esta opción le indica a Shadow que no use libcrack. Esto es deseable pues Linux-PAM ya contiene una libcrack.
sed -i ...: Estos comandos se usan para suprimir la instalación del programa groups, pues es preferida la versión instalada por el paquete Coreutils en LFS.
Añade los siguientes ficheros de configuración de Linux-PAM a /etc/pam.d (o añádelos a /etc/pam.conf con el campo adicional para el programa).
cat > /etc/pam.d/login << "EOF" # Begin /etc/pam.d/login auth requisite pam_securetty.so auth requisite pam_nologin.so auth required pam_env.so auth required pam_unix.so account required pam_access.so account required pam_unix.so session required pam_motd.so session required pam_limits.so session optional pam_mail.so dir=/var/mail standard session optional pam_lastlog.so session required pam_unix.so password required pam_cracklib.so retry=3 difok=8 minlen=5 \ dcredit=3 ocredit=3 \ ucredit=2 lcredit=2 password required pam_unix.so md5 shadow use_authtok # End /etc/pam.d/login EOF
cat > /etc/pam.d/login << "EOF" # Begin /etc/pam.d/login auth requisite pam_securetty.so auth requisite pam_nologin.so auth required pam_env.so auth required pam_unix.so account required pam_access.so account required pam_unix.so session required pam_motd.so session required pam_limits.so session optional pam_mail.so dir=/var/mail standard session optional pam_lastlog.so session required pam_unix.so password required pam_unix.so md5 shadow # End /etc/pam.d/login EOF
cat > /etc/pam.d/passwd << "EOF" # Begin /etc/pam.d/passwd password required pam_cracklib.so retry=3 difok=8 minlen=5 \ dcredit=3 ocredit=3 \ ucredit=2 lcredit=2 password required pam_unix.so md5 shadow use_authtok # End /etc/pam.d/passwd EOF
cat > /etc/pam.d/passwd << "EOF" # Begin /etc/pam.d/passwd password required pam_unix.so md5 shadow # End /etc/pam.d/passwd EOF
cat > /etc/pam.d/su << "EOF" # Begin /etc/pam.d/su auth sufficient pam_rootok.so auth required pam_unix.so account required pam_unix.so session optional pam_mail.so dir=/var/mail standard session required pam_unix.so # End /etc/pam.d/su EOF
cat > /etc/pam.d/chage << "EOF" # Begin /etc/pam.d/chage auth sufficient pam_rootok.so auth required pam_unix.so account required pam_unix.so session required pam_unix.so password required pam_permit.so # End /etc/pam.d/chage EOF
for PROGRAM in chpasswd newusers groupadd groupdel \
groupmod useradd userdel usermod
do
install -v -m644 /etc/pam.d/chage /etc/pam.d/$PROGRAM
sed -i -e "s/chage/$PROGRAM/" /etc/pam.d/$PROGRAM
done
En este momento deberías hacer una simple comprobación para ver si Shadow está funcionando como se espera. Abre otro terminal e ingresa como usuario, entonces haz "su" a root. Si no ves ningún error, entonces todo va bien y deberias continuar con el resto de la configuración. Si recives errores, para ahora y verifica manualmente los anteriores ficheros de configuración. Si no puedes encontrar y corregir el error, deberías recompilar Shadow reemplazando --with-libpam por --without-libpam en las instrucciones anteriores. Si no haces esto y los errores se mantienen, serás incapaz de volver a entrar en el sistema.
Actualmente, /etc/pam.d/other está configurado para permitir a cualquiera con una cuenta en la máquina usar programas que soportan PAM pero que no tienen un fichero de configuración propio. Después de comprobar que Linux-PAM está correctamente configurado, instala un fichero other más restrictivo para que sean necesarios ficheros de configuración específicos para los programas:
cat > /etc/pam.d/other << "EOF" # Begin /etc/pam.d/other auth required pam_deny.so auth required pam_warn.so account required pam_deny.so session required pam_deny.so password required pam_deny.so password required pam_warn.so # End /etc/pam.d/other EOF
En vez de usar el fichero /etc/login.access para controlar el acceso al sistema, Linux-PAM utiliza el módulo pam_access.so junto con el fichero /etc/security/access.conf. Renombra el fichero /etc/login.access usando el siguiente comando
if [ -f /etc/login.access ]; then
mv -v /etc/login.access /etc/login.access.NOUSE
fi
En vez de usar el fichero /etc/limits para limitar el uso de los recursos del sistema, Linux-PAM utiliza el módulo pam_limits.so junto con el fichero /etc/security/limits.conf. Renombra el fichero /etc/limits usando el siguiente comando:
if [ -f /etc/limits ]; then
mv -v /etc/limits /etc/limits.NOUSE
fi
El programa login realiza en la actualidad muchas funciones que ahora deberían manejar los módulos de Linux-PAM. El siguiente comando desactivará las líneas apropiadas en /etc/login.defs, deteniendo que login realice dichas funciones:
for FUNCTION in LASTLOG_ENAB MAIL_CHECK_ENAB \
PORTTIME_CHECKS_ENAB CONSOLE \
MOTD_FILE NOLOGINS_FILE PASS_MIN_LEN \
SU_WHEEL_ONLY MD5_CRYPT_ENAB \
CONSOLE_GROUPS ENVIRON_FILE
do
sed -i -e "s/^$FUNCTION/# &/" /etc/login.defs
done
Si tienes instalado cracklib, desactiva también cuatro líneas más usando el siguiente comando:
for FUNCTION in OBSCURE_CHECKS_ENAB CRACKLIB_DICTPATH \
PASS_CHANGE_TRIES PASS_ALWAYS_WARN
do
sed -i -e "s/^$FUNCTION/# &/" /etc/login.defs
done
Puedes encontrar una lista de los ficheros instalados, junto con sus explicaciones, en ../../lfs-es-SVN/chapter06/shadow.html#contents-shadow.
Last updated on 2005-04-10 13:53:47 +0200