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:
EOF

Los grupos creados no son parte de ningún estándar, son los grupos que el guión make_devices utiliza en la siguiente sección. El LSB (Linux Standard Base) Recomienda sólo 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 paquetes 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 +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. Puesto que queremos usar nuestros binarios recién compilados tan pronto como sean instalados, desactivamos esta función 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, 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.