Shadow-4.0.7

Introducción a Shadow

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.

Información sobre el paquete

Descarga adicional

Dependencias de Shadow

Requerida

Linux-PAM-0.78

Instalación de Shadow

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

Explicación de los comandos

--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.

Configuración de PAM para trabajar con Shadow

Ficheros de configuración

/etc/pam.d/* o, alternativamente, /etc/pam.conf

Información sobre la configuración

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).

login (con cracklib)
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
login (sin cracklib)
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
passwd (con cracklib)
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
passwd (sin cracklib)
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd

password    required       pam_unix.so      md5 shadow

# End /etc/pam.d/passwd
EOF
su
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
chage
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
chpasswd, newusers, groupadd, groupdel, groupmod, useradd, userdel y usermod
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
other
[Aviso]

Aviso

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
Configuración del acceso de ingreo

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
Configuración de la limitación de los recursos

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
Configuración de /etc/login.defs

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

Contenido

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