/etc/passwd, ¿qué es este archivo y para que sirve?

febrero 17, 2022 , 0 Comments

Sobre el archivo /etc/passwd

En el siguiente artículo vamos a echar un vistazo rápido a /etc/passwd. Este archivo va a almacenar información esencial que se requiere durante el inicio de sesión en sistemas Gnu/Linux. Dicho de otra manera, ahí se va a almacenar información relativa a las cuentas de usuarios. El archivo guarda texto sin formato, el cual va a proporcionar información útil para cada cuenta de usuario.

El archivo /etc/passwd debe tener permiso de lectura general, ya que muchas utilidades lo usan para asignar un ID a los nombres de usuario. El acceso de escritura a este fichero está limitado a la cuenta de superuser/root. El archivo es propiedad de root y tiene como permisos 644. Lo que viene a significar que solo puede ser modificado por root o usuarios con privilegios de sudo.

Un rápido vistazo al archivo /etc/passwd

El nombre del archivo se origina en una de sus funciones iniciales. Este contenía los datos utilizados para verificar las contraseñas de las cuentas de los usuarios. Sin embargo, en los sistemas Unix modernos, la información de la contraseña se suele almacenar en un archivo diferente, utilizando contraseñas ocultas u otras implementaciones de bases de datos.

Se puede decir que el archivo /etc/passwd es una base de datos basada en texto sin formato, la cual contiene información sobre todas las cuentas de usuarios que se encuentran el sistema. Como decíamos, es propiedad de root, y aun que solo es modificable por root o usuarios con privilegios de sudo, también es legible por los demás usuarios del sistema.

¿Qué es el archivo /etc/passwd?

Una característica a destacar, es que se trata de un archivo simple de texto ASCII. Este es un archivo de configuración que contiene detalles relativos a las cuentas de usuarios. Identificar a los usuarios de forma única es esencial y necesario en el momento del inicio de sesión, y ahí es justo dónde los sistemas Gnu/Linux utilizan /etc/passwd.

cuenta de un usuario

En este archivo de texto sin formato encontraremos una lista de las cuentas del sistema, guardando de cada cuenta información útil como ID de usuario, ID de grupo, directorio de inicio, shell y más. Además, este debe tener permiso de lectura general, pues muchas utilidades de comandos lo utilizan para asignar un ID de usuario a los nombres de usuario.

Aun que es posible agregar y administrar usuarios directamente en este archivo, no es recomendable hacerlo, ya que esta acción puede añadir errores, lo cual sería un problema. En lugar de hacerlo así, lo suyo es utilizar los comandos disponibles para la administración de usuarios.

¿Cuál es el uso de este archivo?

Existen varios esquemas de autenticación diferentes que se pueden usar en sistemas Gnu/Linux. El esquema estándar más utilizado es realizar la autenticación en los archivos /etc/passwd y /etc/shadow. En el archivo /etc/passwd se almacena la lista de usuarios del sistema junto con información importante sobre estos. Gracias a este archivo el sistema puede identificar a los usuarios de forma única, pues esto es esencial y necesario en el momento de iniciar la sesión correspondiente de forma correcta.

El contenido del fichero /etc/passwd determina quien puede acceder al sistema de manera legitima y que puede hacer una vez dentro. Es por esto que este archivo quizás pueda ser considerado como la primera linea de defensa del sistema para evitar los accesos no deseados. Por este motivo, es importante mantenerlo libre de errores y fallos.

Formato del archivo /etc /passwd

En el contenido de este archivo, nos vamos a encontrar el nombre de usuario, el nombre real, la información de identificación y la información básica de la cuenta de cada usuario. Como decíamos, este es un archivo de texto con una entrada por línea, y cada una de estas líneas representa una cuenta de usuario.

Para ver su contenido, los usuarios podemos utilizar un editor de texto o un comando como el siguiente:

Vista del contenido de /etc/passwd

cat /etc/passwd

Cada línea del archivo /etc/passwd va a contener siete campos separados por puntos (:). Normalmente, la primera línea describen al usuario root, seguido del sistema y las cuentas de usuario normales. Las nuevas entradas se van añadiendo al final.

Valores del archivo /etc/passwd

A continuación vamos a ver qué significa cada uno de los valores que nos vamos a encontrar en cada una de las líneas del fichero /etc/passwd:

Valores del archivo /etc/passwd

 

  1. Nombre de usuario→ Este se utiliza cuando el usuario inicia sesión. Debe tener entre 1 y 32 caracteres de longitud.
  2. Contraseña→ El carácter x nos va a indicar que la contraseña cifrada se almacena en el archivo /etc/shadow.
  3. ID de usuario (UID)→ A cada usuario se le asigna un ID de usuario (UID) unívoco en el sistema. El UID 0 está reservado para root y los UID 1-99 están reservados para otras cuentas predefinidas. El sistema va a reservar otros UID del 100 al 999 para cuentas/grupos administrativos y del sistema.
  4. ID de grupo (GID)→ Este es el ID del grupo principal al que pertenece el usuario (almacenado en el archivo /etc/group).
  5. Información del de usuario (GECOS)→ Aquí encontraremos el campo de comentario. En este se permite añadir información adicional sobre los usuarios, como son el nombre completo, el número de teléfono, etc.
  6. Directorio de inicio→ Aquí nos encontraremos con la ruta absoluta al directorio “home” del usuario. Si este directorio no existe, el directorio de usuarios se convierte en /.
  7. Shell→ Esta es la ruta absoluta del shell (/bin/bash). Aun que podría no ser un shell como tal. Si el shell se establece en /sbin/nologin y el usuario intenta iniciar sesión en el sistema Gnu/Linux directamente, el shell /sbin/nologin va a cerrar la conexión.

Como hemos dicho líneas más arriba, a excepción de la contraseña, con cualquier editor de textos como «vim» o «gedit» y privilegios de «root» podremos cambiar el comportamiento y configuración de todos los usuarios almacenados en «/etc/passwd». Aunque también es necesario insistir en que, modificar este archivo no se debe hacer salvo un caso excepcional (y sabiendo lo que se hace), pues si se corrompe o borramos algo en un despiste, nos podemos encontrarnos ante una catástrofe, pues en este archivo se encuentra la raíz básica de todos los permisos que usamos y usaremos en el sistema


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.