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 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 |
cp debian/securetty /etc/securetty : Este comando establece las ttys que permiten conexiones a través de PAM.
/etc/pam.d/login, /etc/pam.d/passwd, /etc/pam.d/su, /etc/pam.d/shadow, /etc/pam.d/useradd
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.