Objetivo:
Aprender a identificar y consultar los ficheros del sistema que almacenan la información de los usuarios en Linux (/etc/passwd y /etc/shadow), interpretar sus campos y utilizar el comando chage para obtener información legible sobre la caducidad de las contraseñas.
Escenario:
- Herramientas: Terminal de Linux y un sistema Debian o basado en Debian.
- Conceptos clave: usuarios, grupos, contraseñas, cifrado, superusuario, privilegios, caducidad de contraseñas, permisos de ficheros del sistema.
Instrucciones:
Fase 1: El fichero /etc/passwd
- Abre una terminal y visualiza el contenido del fichero de usuarios del sistema:
- Observa que cada línea corresponde a un usuario y que los campos están separados por dos puntos (
:). - Localiza la línea correspondiente al usuario
roote identifica sus campos: nombre de usuario, indicador de contraseña, UID, GID, comentario, directorio home y shell de inicio de sesión. - Sal de
lesspulsando la teclaq. - Busca dentro del fichero la línea correspondiente a tu propio usuario:
- Identifica en dicha línea tu UID, tu GID, tu directorio home y tu shell.
less /etc/passwd
grep "$(whoami)" /etc/passwd
Fase 2: Usuarios de sistema vs. usuarios normales
- Vuelve a visualizar el fichero completo:
- Localiza dos o tres usuarios distintos a
rooty al tuyo (por ejemplodaemonobin) y observa qué shell tienen asignada en el último campo. - Sal con
qy anota qué diferencia observas entre la shell de estos usuarios y la shell de tu propio usuario.
less /etc/passwd
Fase 3: Permisos y acceso al fichero /etc/shadow
- Intenta visualizar el fichero de contraseñas sin privilegios de administrador:
- Observa el mensaje de permiso denegado que devuelve el sistema.
- Consulta los permisos del fichero:
- Identifica qué usuario y grupo tienen permiso de lectura sobre el fichero.
- Accede ahora al contenido utilizando privilegios de administrador:
less /etc/shadow
ls -l /etc/shadow
sudo less /etc/shadow
Fase 4: Interpretación de los campos de /etc/shadow
- Dentro del fichero
shadow, localiza la línea de tu propio usuario y observa sus campos separados por dos puntos. - Identifica el segundo campo (la contraseña cifrada) y comprueba si aparece como una cadena cifrada, un asterisco o una admiración.
- Identifica el resto de campos numéricos: fecha del último cambio de clave, días mínimos entre cambios, días máximos de validez, días de aviso antes de caducar y días de margen antes de deshabilitar la cuenta.
- Sal del fichero con
q.
Fase 5: El comando chage
- Consulta de forma legible la información de caducidad de tu propia contraseña:
- Compara la información mostrada con los campos que habías identificado manualmente en
/etc/shadow. - Intenta consultar ahora la información del usuario
root: - Si el sistema deniega el acceso, repite el comando utilizando privilegios de administrador:
chage -l $(whoami)
chage -l root
sudo chage -l root
Preguntas de reflexión:
- ¿Qué información contiene el fichero
/etc/passwd? - ¿Qué significan el UID y el GID de un usuario?
- ¿Para qué sirve el campo de la shell en
/etc/passwd? ¿Qué significa que un usuario tenganologincomo shell? - ¿Qué información contiene el fichero
/etc/shadowy por qué es más sensible que/etc/passwd? - ¿Por qué un usuario normal no puede leer directamente el fichero
/etc/shadow? - ¿Qué representa el valor numérico que indica la fecha del último cambio de contraseña en
/etc/shadow? - ¿Qué diferencia existe entre los días mínimos y los días máximos de validez de una contraseña?
- ¿Para qué sirve el campo de días de aviso antes de que caduque la contraseña?
- ¿Qué ventaja ofrece el comando
chage -lfrente a consultar directamente el fichero/etc/shadow? - ¿Por qué no se deben editar manualmente los ficheros
/etc/passwdy/etc/shadowcon un editor de texto?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué información contiene el fichero /etc/passwd?
Contiene una línea por cada usuario del sistema, con campos como el nombre de usuario, un indicador relativo a la contraseña, el UID, el GID, un comentario, el directorio home y la shell de inicio de sesión.
2. ¿Qué significan el UID y el GID de un usuario?
El UID es el identificador numérico único del usuario y el GID es el identificador numérico del grupo principal al que pertenece dicho usuario.
3. ¿Para qué sirve el campo de la shell en /etc/passwd?
Indica qué intérprete de comandos se ejecuta cuando el usuario inicia sesión. Cuando este campo indica que no se permite el inicio de sesión, significa que ese usuario existe únicamente para ejecutar procesos o servicios del sistema, no para que una persona acceda con él.
4. ¿Qué información contiene /etc/shadow?
Contiene las contraseñas cifradas de los usuarios junto con información sobre su validez: fecha del último cambio, días mínimos y máximos entre cambios, días de aviso antes de caducar y plazo antes de deshabilitar la cuenta. Es más sensible porque incluye las claves de acceso.
5. ¿Por qué un usuario normal no puede leer /etc/shadow?
Porque sus permisos solo otorgan lectura al propietario del fichero y a su grupo, normalmente asociados al administrador, para evitar que cualquier usuario pueda acceder a las contraseñas cifradas del resto.
6. ¿Qué representa la fecha del último cambio de contraseña?
Es el número de días transcurridos desde el 1 de enero de 1970 hasta la última vez que se modificó la contraseña de ese usuario.
7. ¿Diferencia entre días mínimos y máximos de validez?
Los días mínimos indican cuánto tiempo debe pasar antes de que el usuario pueda volver a cambiar su contraseña. Los días máximos indican el tiempo que puede pasar antes de que la contraseña caduque y sea obligatorio cambiarla.
8. ¿Para qué sirve el campo de días de aviso?
Permite que el sistema avise al usuario con antelación de que su contraseña está a punto de caducar, para que pueda cambiarla antes de que deje de ser válida.
9. ¿Qué ventaja ofrece chage -l?
Muestra la misma información que contiene /etc/shadow pero en un formato legible, con fechas y textos comprensibles, en lugar de los números de días que hay que calcular manualmente.
10. ¿Por qué no se deben editar manualmente estos ficheros?
Porque cualquier error, carácter incorrecto o formato mal introducido puede provocar que el sistema no arranque o funcione de forma inestable. Por ello siempre se deben usar las herramientas y comandos que proporciona Linux para gestionar usuarios.
Ficha de Laboratorio: Ficheros de Usuarios en Linux (passwd y shadow)
Instrucciones de entrega:
- Rellena los campos y responde en este formulario desde tu navegador.
- Pulsa el botón de imprimir al final de la página.
- Selecciona "Guardar como PDF" en el diálogo de impresión.
- Entrega el archivo PDF en el aula virtual.
Alumno/a: Fecha:
Grupo:
Completa la ficha realizando las siguientes actividades:
- Visualiza el fichero /etc/passwd y localiza la línea de tu usuario.
Escribe el comando utilizado:
Copia aquí la línea correspondiente a tu usuario:
Indica tu UID, tu GID y tu directorio home:
- Identifica un usuario de sistema (distinto a root y al tuyo) y observa su shell.
Nombre del usuario elegido y shell que tiene asignada:
Explica por qué ese usuario tiene esa shell y no puede iniciar sesión de forma interactiva:
- Intenta visualizar /etc/shadow sin privilegios y comprueba sus permisos.
Escribe el comando para consultar los permisos:
Copia aquí la salida obtenida:
Explica qué usuario y grupo tienen permiso de lectura sobre el fichero:
- Accede a /etc/shadow con privilegios de administrador y localiza tu línea.
Escribe el comando utilizado:
Copia aquí tu línea del fichero shadow (puedes ocultar la parte cifrada de la contraseña si lo prefieres):
Identifica los campos de días mínimos, días máximos y días de aviso:
- Consulta la información de tu contraseña con el comando chage.
Escribe el comando utilizado:
Copia aquí la salida obtenida:
Compárala con los datos que habías identificado manualmente en /etc/shadow:
- Consulta la información de caducidad de la contraseña del usuario root.
Escribe el comando utilizado:
Copia aquí la salida obtenida:
Explica si tuviste que usar privilegios de administrador y por qué: