Cómo se crean los usuarios en Linux, por dentro

Publicado el 2026-09-12 por frfrand

Qué hace realmente adduser: los cuatro archivos donde vive un usuario, para qué sirve /etc/skel y las dos trampas clásicas al crear y borrar cuentas.

Cómo se crean los usuarios en Linux, por dentro

adduser deploy y listo. Pero ¿qué pasó exactamente?

Nada mágico: se escribieron cuatro archivos de texto plano. Entender cuáles son cambia bastante la relación con el sistema, porque a partir de ahí podés leer el estado de tu servidor en lugar de adivinarlo.

/etc/passwd, la ficha pública

deploy:x:1001:1001:Deploy user:/home/deploy:/bin/bash

Siete campos separados por dos puntos: nombre, marcador de contraseña, uid, gid, comentario, carpeta personal y shell.

Este archivo lo puede leer cualquiera. Por eso la contraseña ya no está acá: la x significa "está en shadow". En los años setenta sí vivía en este archivo, y ese fue exactamente el problema que originó /etc/shadow.

Dos cosas que se leen al pasar:

  • Un usuario con shell /usr/sbin/nologin o /bin/false no puede iniciar sesión. Así están casi todos los usuarios de servicio.
  • El uid es lo que manda. Dos nombres distintos con el mismo uid son, para el kernel, el mismo usuario.

/etc/shadow, la parte privada

deploy:$y$j9T$Kx2...:20028:0:99999:7:::

Acá está el hash de la contraseña, no la contraseña. El prefijo dice con qué algoritmo se generó: $y$ es yescrypt, $6$ es SHA-512. Si ves $1$ (MD5) en un servidor moderno, algo viene arrastrado de muy atrás.

Los números que siguen son la política de envejecimiento: cuándo se cambió por última vez, cada cuánto se puede y se debe cambiar, cuántos días de aviso.

Un signo de admiración o un asterisco al principio del hash significa que la cuenta no tiene contraseña válida. En la práctica impide el login por contraseña, que es lo habitual en un servidor donde se entra por clave SSH.

/etc/group y la trampa del -a

sudo:x:27:deploy,ana docker:x:989:deploy

Cada línea es un grupo con la lista de sus miembros secundarios.

Y acá está una de las trampas más caras de Linux:

usermod -G docker deploy # BORRA todos los otros grupos usermod -aG docker deploy # agrega, que es lo que querías

Sin la "a", el comando reemplaza la lista completa de grupos secundarios. Si deploy estaba en sudo y corrés el primero, acabás de quitarte los permisos de administración. Si además tenías el login de root deshabilitado, necesitás la consola del proveedor para arreglarlo.

Escribilo siempre -aG, como si fuera una sola palabra.

/etc/skel, la plantilla de la carpeta personal

Cuando se crea un usuario, su carpeta no nace vacía: se copia el contenido de /etc/skel.

Ahí viven el .bashrc, el .profile y lo que vos quieras agregar. Es el lugar correcto para dejar la configuración que querés que tenga todo el mundo en ese servidor: alias útiles, un .vimrc razonable, un mensaje de bienvenida con las convenciones del equipo.

$ ls -a /etc/skel . .. .bash_logout .bashrc .profile

Cambiarlo no afecta a los usuarios existentes, sólo a los que se creen después.

Borrar un usuario tiene más pasos de los que parece

$ deluser --remove-home deploy

Eso borra la cuenta y la carpeta. Pero quedan cabos sueltos que conviene revisar:

  • /etc/sudoers.d/ : si había una regla para ese usuario, sigue ahí. Y como las reglas se escriben por nombre, el día que se cree otro usuario con el mismo nombre hereda los permisos.
  • crontab -u deploy -l : las tareas programadas del usuario.
  • Archivos huérfanos: "find / -uid 1001" encuentra lo que quedó con el uid viejo. Si más adelante se crea otro usuario con ese uid, se convierte en dueño de esos archivos sin saberlo.
  • Sus claves SSH en otros servidores, que no están en esta máquina.

La forma corta

Para el día a día, adduser (el envoltorio interactivo de Debian y Ubuntu) hace todo bien y pregunta lo necesario. useradd es el comando de bajo nivel: más control, y también más formas de olvidarse algo.

$ adduser deploy $ usermod -aG sudo deploy $ mkdir -p /home/deploy/.ssh && chmod 700 /home/deploy/.ssh $ chown -R deploy:deploy /home/deploy/.ssh

En ArduMaker los usuarios de un VPS se crean desde el panel, cada uno con su propia clave SSH y sus permisos, sin tener que recordar el orden ni la "a". Pero saber qué archivos se están tocando por debajo es lo que te permite diagnosticar cuando algo no cierra.

  • Linux
  • usuarios
  • permisos
  • administración
  • fundamentos

Seguir leyendo

Todos los artículos · Planes de VPS