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.

Descarga adicional

Dependencias de Shadow

Requerida

Linux-PAM-0.77

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 &&
make &&
make install &&
mv /bin/sg /usr/bin &&
mv /bin/vigr /usr/sbin &&
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 a libcrack.

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 y /etc/pam.d/useradd

Información sobre la configuración

Añade los siguientes ficheros de configuración de 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

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 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 loginn no realice estas funciones, ya que ahora lo harán los módulos PAM.