← Terminal y Línea de Comandos en Linux Bloque 4 · Usuarios, grupos y permisos · Tema 20 de 43

Tema 20

Gestionar usuarios y grupos

En el tema 16 leímos /etc/passwd y /etc/group como quien consulta un padrón. Ahora lo modificamos: damos de alta cuentas, les ponemos contraseña, las reunimos en grupos, les concedemos y les quitamos privilegios, y las damos de baja. Son tareas de administración, de modo que casi todos los comandos llevan sudo. Para practicarlas crearemos dos usuarios de prueba y, al terminar, dejaremos el sistema como estaba.

1. Las piezas de una cuenta

Una cuenta de usuario no es un objeto único. Es un conjunto de anotaciones y de archivos repartidos por el sistema, que conocimos uno por uno en el tema 16. Dar de alta un usuario es crear todas esas piezas de manera coherente:

Lo que crea el alta de un usuario: una línea en /etc/passwd con su nombre, UID, directorio y shell; una línea en /etc/shadow con su contraseña; un grupo privado en /etc/group; y un directorio personal copiado de /etc/skel alta de «luis» /etc/passwd · nombre, UID, directorio, shell /etc/shadow · la contraseña /etc/group · su grupo privado /home/luis · copiado de /etc/skel
Un alta toca tres archivos de /etc y crea un directorio. Las herramientas de este tema existen para hacerlo todo de una vez y sin inconsistencias.

Nada impediría editar esos archivos a mano, y así se hacía en los primeros Unix. No se hace por dos motivos. Un error de formato en /etc/passwd puede dejar a todos los usuarios sin poder entrar. Y dos administradores editando a la vez se pisarían los cambios; las herramientas bloquean los archivos mientras trabajan.

2. Dos familias de herramientas

Hay dos juegos de comandos para lo mismo, y conviene distinguirlos porque sus nombres se parecen hasta la confusión:

useradd, usermod, userdel,
groupadd, groupdel
adduser, deluser,
addgroup, delgroup
Están enTodas las distribuciones.Debian, Ubuntu y derivadas.
EstiloHacen exactamente lo que dicen sus opciones, y nada más.Preguntan, aplican valores razonables por defecto e informan cada paso.
Sin opciones, useradd / adduserCrea la cuenta sin directorio personal y sin contraseña.Crea la cuenta completa y lista para usar.
Adecuadas paraScripts, y cualquier sistema.El trabajo manual en Ubuntu.

Los segundos son, en realidad, programas que llaman a los primeros con las opciones convenientes. Veremos los dos: adduser porque es lo cómodo en nuestro sistema, y useradd porque es lo que hay en todos y lo que aparece en la documentación.

3. adduser: el alta guiada

Creamos la primera cuenta de prueba. adduser pide una contraseña para el usuario nuevo y algunos datos opcionales, que se pueden dejar vacíos pulsando Enter:

terminal
$ sudo adduser luis
info: Adding user `luis' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `luis' (1001) ...
info: Adding new user `luis' (1001) with group `luis (1001)' ...
info: Creating home directory `/home/luis' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for luis
Enter the new value, or press ENTER for the default
        Full Name []: Luis Pérez
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y
info: Adding new user `luis' to supplemental / extra groups `users' ...
info: Adding user `luis' to group `users' ...

La salida es una lista ordenada de todo lo que estudiamos. Eligió el primer UID libre a partir del 1000, que es el 1001, porque el 1000 es de ana. Creó un grupo privado con el mismo nombre y el mismo número. Creó el directorio personal y lo llenó a partir de /etc/skel. Pidió la contraseña, dos veces y sin mostrarla. Y recogió los datos del quinto campo de /etc/passwd.

Lo que no hizo también importa: no lo agregó al grupo sudo. Una cuenta nueva es siempre un usuario sin privilegios.

4. Qué se creó

Comprobamos cada pieza con los comandos del tema 16:

terminal
$ getent passwd luis
luis:x:1001:1001:Luis Pérez,,,:/home/luis:/bin/bash
$ id luis
uid=1001(luis) gid=1001(luis) groups=1001(luis),100(users)
$ sudo ls -la /home/luis
total 20
drwxr-x--- 2 luis luis 4096 oct 12 17:40 .
drwxr-xr-x 4 root root 4096 oct 12 17:40 ..
-rw-r--r-- 1 luis luis  220 oct 12 17:40 .bash_logout
-rw-r--r-- 1 luis luis 3771 oct 12 17:40 .bashrc
-rw-r--r-- 1 luis luis  807 oct 12 17:40 .profile

Hizo falta sudo para listar el directorio: sus permisos son rwxr-x---, y ana es «otros» frente a él. La separación entre usuarios funciona desde el primer momento, y en las dos direcciones.

Los tres archivos ocultos no los escribió nadie. Son copias del contenido de un directorio modelo:

/etc/skel, de skeleton, es el directorio cuyo contenido se copia al directorio personal de cada usuario nuevo. Es el «esqueleto» de una cuenta recién creada.

terminal
$ ls -A /etc/skel
.bash_logout  .bashrc  .profile

Es el origen del .bashrc de cada usuario, incluido el tuyo, con los alias que vimos en el tema 5. Lo que un administrador coloque en /etc/skel —un archivo de bienvenida, una configuración de la empresa— aparecerá en todas las cuentas que se creen después. Las existentes no cambian: es una copia en el momento del alta, no un vínculo.

5. useradd: el alta explícita

Creamos la segunda cuenta con la herramienta universal, que no pregunta nada y no supone casi nada:

terminal
$ sudo useradd -m -s /bin/bash -c "Marta Ruiz" marta
$ id marta
uid=1002(marta) gid=1002(marta) groups=1002(marta)
anatomía del comando
useradd -m -s /bin/bash -c "Marta Ruiz" marta
        │  │            │               │
        │  │            │               └─ el nombre de la cuenta
        │  │            └─ el comentario: su nombre completo
        │  └─ su shell de inicio
        └─ crear el directorio personal

Sin mensajes: silencio es éxito. Cada opción suple algo que adduser hacía solo, y omitirlas tiene consecuencias que conviene conocer antes de encontrarlas:

OpciónEfectoSi se omite
-mCrea el directorio personal, copiando /etc/skel.No se crea. La cuenta existe, pero al entrar no tiene dónde.
-s shellFija la shell.En Ubuntu queda /bin/sh: sin historial cómodo ni completado.
-c "texto"El nombre completo.Queda vacío.
-G g1,g2Grupos secundarios.Solo su grupo privado.
-u númeroUn UID determinado.El primero libre.
-rCrea una cuenta de sistema: UID menor que 1000, sin directorio personal.Una cuenta común.
-e AAAA-MM-DDFecha en que la cuenta deja de funcionar.No vence.

Y hay algo que useradd no hace con ninguna opción cómoda: asignar la contraseña. La cuenta nace bloqueada, sin forma de iniciar sesión, hasta que se le pone una.

6. passwd: las contraseñas

El comando passwd cambia contraseñas. Tiene dos usos, según quién lo ejecute:

ComandoQuiénQué pide
passwdCualquier usuario, para su propia contraseña.La contraseña actual, y luego la nueva dos veces.
sudo passwd usuarioEl administrador, para la de otro.Solo la nueva, dos veces. No necesita conocer la anterior.

Con el segundo le damos una contraseña a marta. La opción -S, de status, muestra el estado antes y después:

terminal
$ sudo passwd -S marta
marta L 2026-10-12 0 99999 7 -1
$ sudo passwd marta
New password:
Retype new password:
passwd: password updated successfully
$ sudo passwd -S marta
marta P 2026-10-12 0 99999 7 -1

La segunda columna es el estado: L, de locked, bloqueada; P, con contraseña utilizable. Las demás son los valores de vigencia que veremos en la sección siguiente.

ComandoEfecto
passwdCambia la contraseña propia.
sudo passwd usuarioFija la de otro usuario.
sudo passwd -S usuarioMuestra el estado de la contraseña.
sudo passwd -e usuarioLa marca como vencida: el usuario deberá cambiarla en su próximo ingreso.
sudo passwd -l usuarioBloquea la contraseña.
sudo passwd -u usuarioLa desbloquea.

La cuarta fila resuelve un problema práctico. Al crear la cuenta de otra persona, el administrador elige una contraseña provisoria, y por un momento la conoce. Con passwd -e, el sistema obliga a reemplazarla en el primer inicio de sesión, y a partir de entonces solo su dueño la sabe.

Un usuario común que cambia su contraseña está sujeto a reglas mínimas de calidad: el sistema rechaza las muy cortas o demasiado parecidas a la anterior. Al administrador solo se le advierte.

7. Los campos de /etc/shadow

En el tema 16 dijimos que las contraseñas viven en /etc/shadow, y dejamos su formato para este tema. Cada línea tiene nueve campos; los seis primeros son los que se usan:

terminal
$ sudo getent shadow luis
luis:$y$j9T$…:20738:0:99999:7:::
anatomía de una línea de /etc/shadow
luis:$y$j9T$…:20738:0:99999:7:::
│    │        │     │ │     │
│    │        │     │ │     └─ días de aviso antes del vencimiento
│    │        │     │ └─ días máximos de validez; 99999: no vence
│    │        │     └─ días mínimos entre un cambio y el siguiente
│    │        └─ fecha del último cambio, en días desde 1970
│    └─ el hash de la contraseña, abreviado aquí
└─ el usuario

El segundo campo no es la contraseña, sino su hash, del que no se puede volver a ella. Su comienzo indica con qué algoritmo se calculó, y hay valores especiales que conviene reconocer:

El segundo campo…Significa
Empieza con $y$ o $6$Un hash normal. Los primeros caracteres identifican el algoritmo.
Es ! o *La cuenta no tiene contraseña utilizable. Es el caso de root en Ubuntu y de las cuentas de sistema.
Empieza con ! seguido de un hashLa contraseña existe pero está bloqueada. Al desbloquear se quita el signo, y vuelve a valer la misma.
Está vacíoSe entra sin contraseña. No debe ocurrir nunca.

Las fechas se cuentan en días desde el 1 de enero de 1970; el 20738 corresponde al 12 de octubre de 2026. Para no hacer cuentas, el comando chage, de change age, muestra y modifica la vigencia en forma legible:

terminal
$ sudo chage -l luis
Last password change                                    : oct 12, 2026
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

8. Crear grupos y agregar miembros

Un grupo se crea con groupadd, y nace vacío:

terminal
$ sudo groupadd proyecto
$ getent group proyecto
proyecto:x:1003:

Recibió el GID 1003, el siguiente libre después de los grupos privados de luis y de marta. Para agregar miembros hay tres comandos equivalentes; el primero es el universal:

ComandoObservación
sudo usermod -aG grupo usuarioFunciona en todas las distribuciones. La -a es indispensable.
sudo gpasswd -a usuario grupoTambién universal. El orden de los argumentos es el inverso.
sudo adduser usuario grupoSolo en Debian y Ubuntu.
terminal
$ sudo usermod -aG proyecto luis
$ sudo usermod -aG proyecto marta
$ getent group proyecto
proyecto:x:1003:luis,marta
$ id luis
uid=1001(luis) gid=1001(luis) groups=1001(luis),100(users),1003(proyecto)

Para quitar a alguien de un grupo, y para borrar un grupo:

ComandoEfecto
sudo gpasswd -d usuario grupoQuita al usuario del grupo.
sudo groupdel grupoElimina el grupo. Falla si es el grupo primario de algún usuario.
sudo groupmod -n nuevo viejoCambia el nombre de un grupo. El GID, y por lo tanto los archivos, no se alteran.

Vale aquí la advertencia del tema 16: la membresía se lee al iniciar sesión. Si luis estuviera conectado, seguiría sin pertenecer a proyecto hasta salir y volver a entrar.

9. La trampa de la -a

La opción -G de usermod no agrega un grupo: establece la lista completa de grupos secundarios. Es la -a, de append, la que cambia ese comportamiento por «añadir a los que ya tiene».

ComandoGrupos secundarios antesGrupos secundarios después
usermod -aG proyecto anaadm, cdrom, sudo, dip, …adm, cdrom, sudo, dip, …, proyecto
usermod -G proyecto anaadm, cdrom, sudo, dip, …proyecto, y ninguno más
usermod -G sin -a quita todos los demás grupos

Es uno de los errores más costosos de la administración diaria, y se comete por olvidar una letra. Aplicado a tu propia cuenta, te saca del grupo sudo: en Ubuntu, donde no hay otra manera de ser administrador, el equipo queda sin nadie que pueda administrarlo, y hay que arrancarlo en modo de recuperación. La costumbre que lo evita es escribir siempre -aG, las dos letras juntas, y comprobar después con id usuario. No hay que probarlo.

10. usermod: modificar una cuenta

usermod cambia cualquier dato de una cuenta existente. Sus opciones son, en su mayoría, las mismas de useradd:

ComandoCambia
usermod -aG grupo usuarioAgrega un grupo secundario.
usermod -s /bin/zsh usuarioLa shell de inicio.
usermod -c "Nombre Nuevo" usuarioEl nombre completo.
usermod -l nuevo viejoEl nombre de la cuenta. El UID no cambia, y los archivos siguen siendo suyos.
usermod -d /nuevo/dir -m usuarioEl directorio personal; con -m, además mueve el contenido.
usermod -e 2026-12-31 usuarioLa fecha de vencimiento de la cuenta.
usermod -L usuario, -UBloquea y desbloquea la contraseña.

Dos de esos datos los puede cambiar cada usuario para sí mismo, sin privilegios, con comandos propios: chsh cambia la shell, como vimos en el tema 2, y chfn, el nombre completo y los datos de contacto.

La cuarta fila ilustra otra vez la independencia entre nombres y números. Renombrar una cuenta modifica una línea de /etc/passwd; los archivos, que llevan anotado el UID, no se enteran. El directorio personal conserva su nombre anterior salvo que se lo cambie con -d y -m.

11. Un directorio para un equipo

El propósito habitual de crear un grupo es darle a un equipo un lugar común de trabajo. Lo armamos con las herramientas del tema 18, en /srv, el directorio para datos que el equipo ofrece a otros:

terminal
$ sudo mkdir /srv/proyecto
$ sudo chgrp proyecto /srv/proyecto
$ sudo chmod 770 /srv/proyecto
$ ls -ld /srv/proyecto
drwxrwx--- 2 root proyecto 4096 oct 12 17:55 /srv/proyecto

Leído con el algoritmo del tema 17: los miembros de proyecto pueden entrar, listar, crear y borrar; todos los demás, nada. Lo probamos actuando como cada usuario, con sudo -u:

terminal
$ sudo -u luis touch /srv/proyecto/plan.txt       # luis, miembro: puede crear
$ sudo -u marta ls -l /srv/proyecto               # marta, miembro: puede listar
total 0
-rw-r--r-- 1 luis luis 0 oct 12 17:56 plan.txt
$ ls /srv/proyecto                                # ana no es miembro
ls: cannot open directory '/srv/proyecto': Permission denied

El directorio funciona como se esperaba. Pero el listado delata un problema: el archivo que creó luis pertenece al grupo luis, su grupo primario, y no a proyecto. Para marta es un archivo ajeno, sobre el que tiene solo los permisos de «otros»: puede leerlo y no modificarlo. Un directorio compartido donde cada quien solo puede editar lo suyo no sirve para trabajar en equipo.

La solución no es pedir a cada usuario que ejecute chgrp después de crear cada archivo. Hay un permiso especial que hace que todo lo creado en un directorio herede su grupo. Es el tema 21, y allí terminaremos este ejemplo.

12. Dar y quitar el privilegio de administrar

Según el tema 19, en Ubuntu es administrador quien pertenece al grupo sudo. Convertir una cuenta común en administradora, y revertirlo, son dos operaciones de grupo:

terminal
$ sudo usermod -aG sudo marta                    # marta pasa a ser administradora
$ sudo -l -U marta
User marta may run the following commands on equipo:
    (ALL : ALL) ALL
$ sudo gpasswd -d marta sudo                     # y deja de serlo
Removing user marta from group sudo
$ sudo -l -U marta
User marta is not allowed to run sudo on equipo.

sudo -l -U usuario muestra los permisos de otro usuario, sin necesidad de iniciar sesión como él. En otras distribuciones el grupo equivalente se llama wheel.

Es la decisión de más peso de todo el tema. Quien pertenece a sudo puede leer los archivos de todos, cambiar cualquier contraseña y borrar el sistema. Se concede a quien administra el equipo, no a quien encuentra un Permission denied; para necesidades puntuales están las reglas limitadas de sudoers.

13. Bloquear una cuenta

Entre una cuenta activa y una borrada hay un estado intermedio muy útil: la cuenta que existe, conserva sus archivos, y no admite ingresos. Es lo que corresponde cuando alguien se ausenta por un tiempo, o apenas deja la organización, antes de decidir qué hacer con sus datos.

MétodoComandoQué impide
Bloquear la contraseñasudo usermod -L usuarioEl ingreso con contraseña. Otros métodos, como las claves de acceso remoto, siguen funcionando.
Hacer vencer la cuentasudo usermod -e 1 usuarioTodo ingreso, por cualquier método.
Quitar la shellsudo usermod -s /usr/sbin/nologin usuarioLas sesiones interactivas.
terminal
$ sudo usermod -L marta
$ sudo passwd -S marta
marta L 2026-10-12 0 99999 7 -1
$ sudo usermod -U marta                          # desbloquear: vuelve a valer la misma contraseña

La primera fila de la tabla esconde un malentendido frecuente. Bloquear la contraseña antepone un ! al hash, y eso inutiliza la contraseña, pero no la cuenta. Para cerrar de verdad el acceso, lo seguro es combinar el bloqueo con el vencimiento. La fecha 1 significa el segundo día de 1970: una cuenta vencida hace más de medio siglo.

Bloquear no interrumpe lo que ya está en marcha. Las sesiones abiertas y los procesos del usuario continúan; para verlos sirve ps -u usuario, y los tratamos en el bloque 7.

14. La baja de una cuenta

Eliminar una cuenta es simple de ejecutar y delicado de decidir, porque sus archivos pueden ser lo único que queda del trabajo de una persona. Antes del comando hay un procedimiento:

  1. Bloquear la cuenta, para que nada cambie mientras se trabaja. cerrar
  2. Comprobar que no tiene procesos: ps -u usuario. revisar
  3. Buscar sus archivos fuera del directorio personal: sudo find / -user usuario 2>/dev/null. revisar
  4. Respaldar lo que deba conservarse, con tar, como en el tema 15. respaldar
  5. Eliminar la cuenta. borrar
  6. Verificar que no quedaron archivos sin dueño. comprobar
ComandoEliminaDeja
sudo userdel usuarioLa cuenta: sus líneas en passwd, shadow y group.El directorio personal y todos sus archivos.
sudo userdel -r usuarioLa cuenta y el directorio personal.Sus archivos en otros lugares del sistema.
sudo deluser --remove-home usuarioLo mismo, a la manera de Debian y Ubuntu.Ídem.

Damos de baja nuestras dos cuentas de prueba, cada una con una herramienta:

terminal
$ sudo userdel -r marta
userdel: marta mail spool (/var/mail/marta) not found
$ sudo deluser --remove-home luis
info: Looking for files to backup/remove ...
info: Removing files ...
info: Removing crontab ...
info: Removing user `luis' ...
$ ls /home
ana

El aviso de userdel no es un error: informa que no encontró un buzón de correo que borrar. Las cuentas ya no existen. Pero el sexto paso del procedimiento tiene trabajo:

terminal
$ sudo ls -l /srv/proyecto
total 0
-rw-r--r-- 1 1001 1001 0 oct 12 17:56 plan.txt
$ sudo find / -nouser 2>/dev/null
/srv/proyecto/plan.txt

Es el archivo huérfano del que hablamos en el tema 16. El archivo que luis creó fuera de su directorio personal sigue ahí, a nombre del UID 1001, que ya no corresponde a nadie; ls muestra el número porque no tiene nombre al que traducirlo.

Un archivo huérfano espera a su próximo dueño

No es solo desorden. El próximo usuario que se cree recibirá el primer UID libre, que es precisamente el 1001, y pasará a ser dueño de todos los archivos que dejó el anterior, en cualquier lugar del sistema. Por eso la búsqueda con find -nouser forma parte de la baja: cada resultado se reasigna con chown, o se borra.

Terminamos la limpieza. El grupo se puede borrar ahora que no es primario de nadie, y el directorio de prueba, con su archivo, ya no hace falta. Es un rm -r con sudo: se lee la ruta dos veces.

terminal
$ sudo groupdel proyecto
$ sudo rm -r /srv/proyecto
$ getent passwd luis marta                       # nada: no existen
$ getent group proyecto                           # nada

El sistema quedó como al empezar. La referencia del tema:

TareaComando
Crear un usuario, en Ubuntusudo adduser usuario
Crear un usuario, en cualquier sistemasudo useradd -m -s /bin/bash usuario y sudo passwd usuario
Cambiar la contraseña propiapasswd
Fijar la de otro, y obligarlo a cambiarlasudo passwd usuario y sudo passwd -e usuario
Crear un gruposudo groupadd grupo
Agregar un usuario a un gruposudo usermod -aG grupo usuario
Quitarlosudo gpasswd -d usuario grupo
Hacerlo administradorsudo usermod -aG sudo usuario
Bloquear una cuentasudo usermod -L -e 1 usuario
Eliminar una cuenta y su directoriosudo userdel -r usuario
Buscar archivos sin dueñosudo find / -nouser 2>/dev/null

En el tema 21 cerramos el bloque con los tres permisos que quedaron pendientes: el que permite a passwd escribir en un archivo que solo root puede tocar, el que resuelve el directorio compartido de la sección 11, y el que protege a /tmp.

15. Resumen

16. Preguntas de repaso

Intenta responder cada una antes de abrir la respuesta.

1. ¿Qué archivos y directorios se modifican o se crean al dar de alta un usuario?

Se agrega una línea en /etc/passwd, otra en /etc/shadow y un grupo privado en /etc/group, y se crea su directorio personal a partir de /etc/skel.

2. ¿Qué diferencia hay entre adduser y useradd?

adduser existe en Debian y Ubuntu, pregunta los datos y crea la cuenta completa. useradd está en todas las distribuciones y hace únicamente lo que indican sus opciones.

3. Ejecutaste sudo useradd pedro, sin opciones. ¿Qué le falta a la cuenta?

El directorio personal, una shell cómoda y la contraseña. Debió crearse con -m -s /bin/bash, y luego asignarle la contraseña con passwd.

4. ¿Qué es /etc/skel?

El directorio modelo cuyo contenido se copia al directorio personal de cada usuario nuevo. De allí sale el .bashrc inicial.

5. ¿Qué pide passwd a un usuario común, y qué al administrador que cambia la contraseña de otro?

Al usuario, la contraseña actual y dos veces la nueva. Al administrador, solo la nueva, dos veces.

6. ¿Para qué sirve passwd -e al crear la cuenta de otra persona?

Marca la contraseña como vencida, de modo que el usuario deba elegir una nueva en su primer ingreso. Así el administrador deja de conocerla.

7. En /etc/shadow, ¿qué indica que el campo de la contraseña sea !? ¿Y que empiece con ! seguido de un hash?

En el primer caso, la cuenta no tiene contraseña utilizable. En el segundo, tiene una, pero está bloqueada.

8. Escribe el comando para agregar al usuario sofia al grupo ventas.

sudo usermod -aG ventas sofia

9. ¿Qué ocurre si en ese comando se omite la -a?

El grupo ventas pasa a ser el único grupo secundario del usuario: se lo quita de todos los demás, incluido sudo si pertenecía a él.

10. Agregaste a un usuario a un grupo y, con la sesión que tenía abierta, no puede usar el acceso nuevo. ¿Por qué?

Porque los grupos se leen al iniciar sesión. Tiene que salir y volver a entrar.

11. Se renombra una cuenta con usermod -l. ¿Qué pasa con sus archivos?

Siguen siendo suyos. Los archivos llevan anotado el UID, que no cambia con el nombre.

12. ¿Cómo se convierte en administrador a un usuario de Ubuntu, y cómo se revierte?

Agregándolo al grupo sudo: sudo usermod -aG sudo usuario. Se revierte quitándolo: sudo gpasswd -d usuario sudo.

13. ¿Por qué bloquear la contraseña puede no alcanzar para cerrar una cuenta?

Porque solo impide el ingreso con contraseña. Otros métodos de autenticación, como las claves de acceso remoto, siguen valiendo. Hacer vencer la cuenta impide todos.

14. ¿Qué diferencia hay entre userdel y userdel -r?

El primero elimina la cuenta y deja el directorio personal. El segundo borra también el directorio personal.

15. ¿Por qué son un riesgo los archivos que quedan sin dueño tras una baja?

Porque el UID liberado se asignará al próximo usuario que se cree, que pasará a ser dueño de esos archivos. Se localizan con find / -nouser.

Para practicar

  1. Crea un usuario de prueba con adduser. Comprueba su línea en /etc/passwd, su id, el contenido de su directorio personal y sus permisos.
  2. Crea otro con useradd, primero sin opciones y luego, tras borrarlo, con -m -s /bin/bash -c. Compara las dos cuentas con getent passwd y ls -ld /home/*.
  3. Mira el estado de la contraseña del segundo con passwd -S, asígnale una, márcala como vencida con passwd -e, y revisa su vigencia con chage -l.
  4. Inicia una sesión como el primer usuario con su - nombre. Ejecuta id, pwd y sudo -l, e intenta entrar a tu propio directorio personal. Sal con exit.
  5. Crea un grupo, agrega a los dos usuarios con usermod -aG, y verifica con getent group y con id.
  6. Arma un directorio compartido en /srv para ese grupo, como en la sección 11, y pruébalo con sudo -u: que un miembro cree un archivo y que otro intente modificarlo.
  7. Agrega un archivo a /etc/skel, por ejemplo sudo touch /etc/skel/LEEME.txt, crea un tercer usuario y comprueba que lo recibió. Quita después el archivo de /etc/skel.
  8. Bloquea una de las cuentas con usermod -L, mira el efecto en sudo getent shadow nombre, e intenta entrar con su - nombre. Desbloquéala.
  9. Aplica a las cuentas de prueba el procedimiento de baja de la sección 14, incluida la búsqueda de archivos con find -user antes y find -nouser después.
  10. Deja el sistema como estaba: sin los usuarios, sin el grupo y sin el directorio de /srv. Compruébalo con getent y con ls /home /srv.