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/old/shadow-4.0.4.1.tar.bz2
Suma MD5 del paquete: 3a3d17d3d7c630b602baf66ae7434c61
Tamaño del paquete: 814 KB
Estimación del espacio necesario en disco: 14.1 MB
Tiempo estimado de construcción: 0.42 SBU
Parche para corregir el enlazado contra PAM: http://www.linuxfromscratch.org/blfs/downloads/6.0/shadow-4.0.4.1-pam-1.patch
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
--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.
/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).
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
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
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
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