Shadow-4.0.3

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.

Instalación de shadow

Descarga el parche para shadow desde http://www.linuxfromscratch.org/patches/blfs/5.0.

Reinstala shadow ejecutando los siguientes comandos:

patch -Np1 -i ../shadow-4.0.3-pam-2.patch &&
./configure --prefix=/usr --libdir=/usr/lib \
--enable-shared --with-libpam &&
make &&
make install &&
ln -sf vipw /usr/sbin/vigr &&
rm /bin/vipw &&
mv /bin/sg /usr/bin &&
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 &&
cp debian/securetty /etc/securetty

Explicación de los comandos

cp debian/securetty /etc/securetty : Este comando establece las ttys que permiten conexiones a través de PAM.

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

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:

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