6.50. Shadow-4.0.18.1

El paquete Shadow contiene programas para manejar contraseñas de forma segura.

Tiempo estimado de construcción: 0.3 SBU
Espacio requerido en disco: 20.7 MB

6.50.1. Instalación de Shadow

[Nota]

Nota

Si deseas forzar el uso de contraseñas fuertes, consulta http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cracklib.html para instalar Cracklib antes de construir Shadow. Entonces añade --with-libcrack al siguiente comando configure.

Corrige un error en los programas useradd y usermod que les impide aceptar nombres de grupo en vez de números ID de grupo al usar la opción -g:

patch -Np1 -i ../shadow-4.0.18.1-useradd_fix-2.patch

Prepara Shadow para su compilación:

./configure --libdir=/lib --sysconfdir=/etc --enable-shared \
    --without-selinux

Significado de la opción de configure:

--without-selinux

El soporte para selinux está activado por defecto, pero selinux no se construye en el sistema LFS base. El guión configure fallará si no se utiliza esta opción.

Suprime la instalación del programa groups y sus páginas de manual, pues Coreutils proporciona una versión mejor:

sed -i 's/groups$(EXEEXT) //' src/Makefile
find man -name Makefile -exec sed -i 's/groups\.1 / /' {} \;

Desactiva la instalación de las páginas de manual en chino y coreano, pues Man-DB no puede formatearlas correctamente:

sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile

Shadow incluye otras páginas de manual en codificación UTF-8. Man-DB podrá mostrarlas en las codificaciones recomendadas usando el guión convert-mans que instalamos anteriormente:

for i in de es fi fr id it pt_BR; do
    convert-mans UTF-8 ISO-8859-1 man/${i}/*.?
done

for i in cs hu pl; do
    convert-mans UTF-8 ISO-8859-2 man/${i}/*.?
done

convert-mans UTF-8 EUC-JP man/ja/*.?
convert-mans UTF-8 KOI8-R man/ru/*.?
convert-mans UTF-8 ISO-8859-9 man/tr/*.?

En vez de usar el método por defecto, crypt, utiliza el método de encriptación de contraseñas MD5, que es más seguro y además permite contraseñas de más de 8 caracteres. También es necesario cambiar la obsoleta localización /var/spool/mail, que Shadow utiliza por defecto para los buzones de los usuarios, a /var/mail, que es la localización usada hoy en día:

sed -i -e 's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \
    -e 's@/var/spool/mail@/var/mail@' etc/login.defs
[Nota]

Nota

Si construyes Shadow con soporte para Cracklib, ejecuta lo siguiente:

sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' \
    etc/login.defs

Compila el paquete:

make

Este paquete no incluye un banco de pruebas.

Instala el paquete:

make install

Mueve un programa mal ubicado a su lugar correcto:

mv -v /usr/bin/passwd /bin

Mueve las librerías de Shadow a un lugar más apropiado:

mv -v /lib/libshadow.*a /usr/lib
rm -v /lib/libshadow.so
ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so

6.50.2. Configuración de Shadow

Este paquete contiene utilidades para añadir, modificar o eliminar usuarios y grupos, establecer y cambiar sus contraseñas y otras tareas administrativas. Puedes encontrar una completa explicación de lo que significa password shadowing (ocultación de contraseñas) en el fichero doc/HOWTO dentro del árbol de las fuentes. Hay una cosa que debes recordar si decides usar soporte para Shadow: los programas que necesiten verificar contraseñas (administradores de sesión, programas FTP, demonios pop3, etc) necesitarán ser compatibles con Shadow: esto es, necesitan ser capaces de trabajar con contraseñas ocultas.

Para habilitar las contraseñas ocultas, ejecuta el siguiente comando:

pwconv

Para habilitar las contraseñas de grupo ocultas, ejecuta:

grpconv

La configuración base de Shadow para la utilidad useradd no es la correcta para un sistema LFS. Utiliza los siguientes comandos para cambiar el directorio personal por defecto para nuevos usuarios y evitar la creación de sus ficheros de almacen de correo:

useradd -D -b /home
sed -i 's/yes/no/' /etc/default/useradd

6.50.3. Establecer la contraseña de root

Elige una contraseña para el usuario root y establécela mediante:

passwd root

6.50.4. Contenido de Shadow

Programas instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, lastlog, login, logoutd, newgrp, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (enlace a newgrp), su, useradd, userdel, usermod, vigr (enlace a vipw) y vipw
Librerías instaladas: libshadow.{a,so}

Descripciones cortas

chage

Se usa para cambiar el número máximo de días entre cambios obligatorios de contraseña.

chfn

Se usa para cambiar el nombre completo de un usuario y otra información.

chgpasswd

Utilizado para actualizar lotes de contraseñas de grupos.

chpasswd

Utilizado para actualizar lotes de contraseñas de usuarios.

chsh

Cambia el intérprete de comandos por defecto que se ejecuta cuando el usuario entra al sistema.

expiry

Comprueba y refuerza la política actual de expiración de contraseñas.

faillog

Sirve para examinar el contenido del registro de ingresos fallidos al sistema, establecer un máximo de fallos para bloquear una cuenta de usuario y reiniciar el contador de fallos.

gpasswd

Se usa para agregar y eliminar miembros y administradores a los grupos.

groupadd

Crea un nuevo grupo con el nombre especificado.

groupdel

Borra el grupo con el nombre especificado.

groupmems

Permite a un usuario administrar la lista de miembros de su propio grupo sin necesidad de privilegios de superusuario.

groupmod

Modifica el nombre o el identificador (GID) de un grupo especificado.

grpck

Verifica la integridad de los ficheros de grupos, /etc/group y /etc/gshadow.

grpconv

Crea o actualiza el fichero de grupos ocultos a partir de un fichero de grupos normal.

grpunconv

Actualiza /etc/group a partir de /etc/gshadow, borrando este último.

lastlog

Muestra el último acceso de cada usuario o de un usuario especificado.

login

Lo utiliza el sistema para permitir el ingreso de un usuario.

logoutd

Es un demonio que refuerza las restricciones de ingreso en base a horas y puertos de acceso.

newgrp

Se usa para cambiar el identificador de grupo (GID) actual durante una sesión de acceso.

newusers

Crea o actualiza un grupo de cuentas de usuario de una sola vez.

nologin

Muestra un mensaje sobre que una cuenta no está disponible. Diseñado para usarse como interprete de comandos por defecto para cuentas que han sido desactivadas.

passwd

Se utiliza para cambiar la contraseña de la cuenta de un usuario o grupo.

pwck

Verifica la integridad de los ficheros de contraseñas, /etc/passwd y /etc/shadow.

pwconv

Crea o actualiza el fichero de contraseñas ocultas a partir de un fichero de contraseñas normal.

pwunconv

Actualiza /etc/passwd a partir de /etc/shadow, borrando este último.

sg

Ejecuta un comando dado estableciendo el GID del usuario al del grupo indicado.

su

Ejecuta un intérprete de comandos sustituyendo los identificadores de usuario y grupo.

useradd

Crea un nuevo usuario con el nombre especificado o actualiza la información por defecto de un nuevo usuario.

userdel

Borra la cuenta de usuario indicada.

usermod

Modifica el nombre, identificador (UID), intérprete de comandos, grupo inicial, directorio personal, etc, del usuario indicado.

vigr

Edita los ficheros /etc/group o /etc/gshadow.

vipw

Edita los ficheros /etc/passwd o /etc/shadow.

libshadow

Contiene funciones usadas por la mayoría de los programas de este paquete.