Shadow-4.0.4.1

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.4.1-pam-1.patch &&
LIBS="-lpam -lpam_misc" ./configure --libdir=/usr/lib \
    --enable-shared --with-libpam --without-libcrack &&
echo '#define HAVE_SETLOCALE 1' >> config.h &&
sed -i '/extern char/d' libmisc/xmalloc.c &&
make

Ahora, como usuario root:

make install &&
mv /bin/sg /usr/bin &&
mv /bin/vigr /usr/sbin &&
mv /usr/bin/passwd /bin &&
rm /bin/groups &&
mv /usr/lib/lib{misc,shadow}.so.0* /lib &&
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so &&
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.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 '/extern char/d' libmisc/xmalloc.c: Esto corrige un problema de compilación cuando se usa GCC-3.4.x.

Configuración de PAM para trabajar con Shadow

Ficheros de configuración

/etc/pam.d/login, /etc/pam.d/passwd, /etc/pam.d/su, /etc/pam.d/shadow, /etc/pam.d/useradd y /etc/pam.d/chage (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).

cat > /etc/pam.d/login << "EOF"
# Inicio de /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

# Fin de /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Inicio de /etc/pam.d/passwd

password    required       pam_unix.so     md5 shadow use_authtok

# Fin de /etc/pam.d/passwd
EOF
cat > /etc/pam.d/shadow << "EOF"
# Inicio de /etc/pam.d/shadow

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

# Fin de /etc/pam.d/shadow
EOF
cat > /etc/pam.d/su << "EOF"
# Inicio de /etc/pam.d/su

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so

# Fin de /etc/pam.d/su
EOF
cat > /etc/pam.d/useradd << "EOF"
# Inicio de /etc/pam.d/useradd

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

# Fin de /etc/pam.d/useradd
EOF
cat > /etc/pam.d/chage << "EOF"
# Inicio de /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

# Fin de /etc/pam.d/chage
EOF
[Nota]

Nota

Si tienes instalado cracklib, reemplaza /etc/pam.d/passwd con lo siguiente:

cat > /etc/pam.d/passwd << "EOF" 
# Inicio de /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

# Fin de /etc/pam.d/passwd
EOF
[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 no tienen un fichero de configuración propio. Después de comprobar que Linux-PAM está correctamente configurado, puede cambiarse de la siguiente forma:

cat > /etc/pam.d/other << "EOF"
# Inicio de /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

# Fin de /etc/pam.d/other
EOF

Por último, edita /etc/login.defs añadiendo '#' al comienzo de las siguientes líneas:

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

Esto hace que login no realice estas funciones, ya que ahora lo harán los módulos PAM. Adicionalmente, añade un '#' al inicio de las siguientes líneas si has instalado cracklib:

OBSCURE_CHECKS_ENAB
CRACKLIB_DICTPATH
PASS_CHANGE_TRIES
PASS_ALWAYS_WARN

Contenido

Puedes encontrar una lista de los ficheros instalados, junto con sus explicaciones, en ../../lfs-es-6.0/chapter06/shadow.html#contents-shadow.

Last updated on 2005-04-09 00:53:09 +0200