Linux From Scratch: Versión 5.0 | ||
---|---|---|
Anterior | Capítulo 6. Instalación de los programas del sistema base | Siguiente |
Tiempo estimado de construcción: 0.4 SBU Estimación del espacio necesario en disco: 11 MB |
El paquete Shadow se creó para consolidar la seguridad del sistema de contraseñas.
Programas instalados: chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (enlace a newgrp), useradd, userdel, usermod, vigr (enlace a vipw) y vipw
Shadow depende de: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
Los programas login, getty e init (entre otros) mantienen una serie de ficheros de registro con información sobre quienes están y estaban dentro del sistema. Sin embargo, estos programas no crean dichos ficheros si no existen, por lo que si quieres que se produzca el registro, deberás crear los ficheros tú mismo. El paquete Shadow necesita detectar estos ficheros en sus ubicaciones adecuadas, así que los crearemos ahora con sus permisos correctos:
touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp} |
El fichero /var/run/utmp lista los usuarios que están actualmente dentro del sistema, /var/log/wtmp registra quienes estuvieron en el sistema y cuando. El fichero /var/log/lastlog nos muestra, para cada usuario, cuando fue la última vez que ingresó y el fichero /var/log/btmp lista los intentos de ingreso fallidos.
Shadow fija en su código la ruta al binario passwd, pero lo hace de forma incorrecta. Si no existe un binario passwd antes de instalar Shadow, este asume erróneamente que el binario estará en /bin/passwd, pero luego lo instala en /usr/bin/passwd, lo que llevará a obtener errores extraños acerca de que no puede encontrar /bin/passwd. Para corregir este error de Shadow crearemos un fichero passwd temporal para que en su código se fije la ruta correcta:
touch /usr/bin/passwd |
El paquete Shadow actual tiene un problema que hace que el comando newgrp falle. El siguiente parche (también aparece en el código CVS de Shadow) corrige este problema.
patch -Np1 -i ../shadow-4.0.3-newgrp-fix.patch |
Ahora, prepara Shadow para su compilación:
./configure --prefix=/usr --libdir=/usr/lib --enable-shared |
Compila el paquete:
make |
E instálalo:
make install |
Shadow utiliza dos ficheros para configurar los ajustes de autenticación para el sistema. Instala estos ficheros de configuración:
cp etc/{limits,login.access} /etc |
Queremos cambiar el método de contraseñas para activar las contraseñas MD5 que, teoricamente, son mas seguras que el método "crypt" que hay por defecto, y tambien permite contraseñas de mas de 8 caracteres de longitud. Al mismo tiempo necesitamos cambiar la antigua localización de los buzones de correo de usuario /var/spool/mail a su localización actual /var/mail. Haremos esto cambiando en el fichero adecuado de configuración mientras lo copiamos a su destino:
sed -e 's%/var/spool/mail%/var/mail%' \ -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \ etc/login.defs.linux > /etc/login.defs |
Nota: Ten mucho cuidado cuando teclees lo anterior. Posiblemente sea más seguro cortar y copiar que intentar escribirlo.
De acuerdo a la página de manual de vipw, debería existir también el programa vigr. Como el procedimiento de instalación no crea este programa, haz manualmente un enlace simbólico:
ln -s vipw /usr/sbin/vigr |
Puesto que el enlace vipw es redundante (además de apuntar a un fichero que no existe), elimínalo:
rm /bin/vipw |
Mueve el programa sg a una ubicación adecuada:
mv /bin/sg /usr/bin |
Y mueve las librerías dinámicas de Shadow a un lugar más apropiado:
mv /usr/lib/lib{shadow,misc}.so.0* /lib |
Como algunos paquetes esperan encontrar las librerías que acabamos de mover en /usr/lib, crea los siguientes enlaces simbólicos:
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so |
Coreutils ya ha instalado un programa groups en /usr/bin. Si lo deseas, puedes borrar el que acaba de instalar Shadow:
rm /bin/groups |
Este paquete contiene las utilidades para modificar las contraseñas de los usuarios, añadir o borrar usuarios y grupos, etc. No vamos a explicar lo que significa 'password shadowing'. Puedes econtrar una completa explicación en el fichero doc/HOWTO que está en el árbol de fuentes de Shadow al desempaquetarlo. Hay una cosa que debes recordar si decides usar soporte para Shadow: los programas que necesiten verificar contraseñas (por ejemplo xdm, demonios de ftp, demonios de pop3, etc) necesitarán ser 'compatibles con shadow', es decir, necesitan ser capaces de trabajar con contraseñas ocultas.
Para habilitar las contraseñas ocultas, ejecuta el siguiente comando:
/usr/sbin/pwconv |
Y para habilitar las contraseñas de grupo ocultas, ejecuta este otro comando:
/usr/sbin/grpconv |
Bajo circunstancias normales aún no habrás creado ninguna contraseña. Sin embargo, si regresas a esta sección para activar la ocultación, debes restablecer cualquier contraseña actual de usuario con el comando passwd, o cualquier contraseña de grupo con el comando gpasswd.