Volver

¿Qué es /etc/passwd?

El archivo /etc/passwd es una base de datos en formato texto presente en sistemas Unix y Linux que almacena información sobre las cuentas de usuario. Cada línea representa un usuario y contiene siete campos separados por dos puntos (:). En los sistemas modernos, las contraseñas hasheadas se almacenan en el archivo separado /etc/shadow (sombra), mostrando una "x" en el campo de contraseña por seguridad, pero el archivo passwd permanece legible por todos los usuarios para permitir el mapeo de nombres de usuario a UIDs.

El formato fue heredado de los primeros sistemas Unix de AT&T Bell Laboratories y ha permanecido como estándar en prácticamente todos los sistemas tipo Unix durante décadas. Solo el superusuario (root) puede modificar el archivo, aunque cualquier usuario puede leerlo para consultar información como el directorio personal o el intérprete de comandos asignado.

Casos de uso comunes

  • Auditar cuentas de usuario: Revisar todos los usuarios del sistema, sus UIDs y GIDs asignados para detectar cuentas huérfanas o mal configuradas en servidores Linux.
  • Consultar directorio home o shell: Obtener rápidamente el directorio personal o el intérprete de comandos predeterminado de un usuario específico.
  • Automatizar aprovisionamiento: Analizar el archivo passwd durante scripts de configuración de contenedores o servidores para verificar la creación correcta de usuarios.
  • Distinguir usuarios humanos de sistema: Identificar qué cuentas pertenecen a usuarios reales (UID >= 1000) y cuáles son cuentas de sistema o servicio (UID < 1000).

Formato de /etc/passwd

Cada línea en /etc/passwd contiene exactamente siete campos separados por dos puntos (:):

username:password:UID:GID:comment:home:shell

Por ejemplo, la línea jdoe:x:1001:1000:John Doe,Room 1007:/home/jdoe:/bin/sh representa:

  • username (jdoe): Nombre de inicio de sesión, único en el sistema.
  • password (x): Marcador que indica que la contraseña real está en /etc/shadow.
  • UID (1001): Identificador numérico de usuario. Los UIDs < 1000 suelen ser de sistema.
  • GID (1000): Identificador del grupo primario del usuario.
  • comment (John Doe,Room 1007): Campo GECOS con nombre completo y datos de contacto.
  • home (/home/jdoe): Ruta al directorio personal del usuario.
  • shell (/bin/sh): Intérprete de comandos que se ejecuta al iniciar sesión.