6.7. Creación de los ficheros de contraseñas, grupos y registro

Para que root pueda entrar al sistema y para que el nombre “root” sea reconocido, es necesario tener las entradas apropiadas en los ficheros /etc/passwd y /etc/group.

Crea el fichero /etc/passwd ejecutando el siguiente comando:

cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
EOF

La contraseña real para root (la “x” es sólo un sustituto) se establecerá más adelante.

Crea el fichero /etc/group ejecutando el siguiente comando:

cat > /etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
tape:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
EOF

Los grupos creados no son parte de ningún estándar, son grupos escogidos en parte por los requisitos de la configuración de Udev en este capítulo, y en parte por la práctica común empleada por una serie de distribuciones Linux existentes. El LSB (Linux Standard Base, disponible en http://www.linuxbase.org/) sólo recomienda que, aparte del grupo “root” con GID 0, esté presente un grupo “bin” con GID 1. Todos los demás nombres de grupos y sus GID pueden ser elegidos libremente por el usuario, pues los programas correctamente escritos no dependen del número GID, sino que utilizan el nombre del grupo.

Para eliminar el “I have no name!” del símbolo del sistema, iniciaremos un nuevo intérprete de comandos. Puesto que instalamos una Glibc completa en el Capítulo 5 y acabamos de crear los ficheros /etc/passwd y /etc/group, la resolución de nombres de usuarios y grupos funcionará ahora.

exec /tools/bin/bash --login +h

Advierte el uso de la directiva +h. Esto le indica a bash que no utilice su tabla interna de rutas. Sin esta directiva, bash recordaría la ruta a los binarios que ha ejecutado. Para poder usar los binarios recién compilados tan pronto como sean instalados, se usará la directiva +h durante el resto de este capítulo.

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. Crea los ficheros de registro con sus permisos correctos:

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chgrp -v utmp /var/run/utmp /var/log/lastlog
chmod -v 664 /var/run/utmp /var/log/lastlog

El fichero /var/run/utmp lista los usuarios que están actualmente dentro del sistema, /var/log/wtmp registra todos los ingresos y salidas. El fichero /var/log/lastlog muestra, para cada usuario, cuando fue la última vez que ingresó, y el fichero /var/log/btmp lista los intentos de ingreso fallidos.