En un artículo anterior, analicé el proceso de creación de usuarios en Linux mediante el comando useradd mediante el comando useradd.
El administrador del sistema, responsable de este proceso, también se encarga de la eliminación de cuentas de usuario. Esto ocurre cuando un usuario deja la organización y su cuenta queda inactiva. Cuando una cuenta ya no es necesaria, debe ser eliminada para no dejar brechas de seguridad.
En tal caso, el administrador del sistema debe eliminar un usuario en Linux junto con su directorio personal y sus archivos. Esta acción permite optimizar los recursos (por ejemplo, liberar espacio de almacenamiento) y mejorar la seguridad del sistema.
En esta guía, describiré el proceso para eliminar usuarios en Linux, analizaré los comandos deluser y userdel, y demostraré comandos adicionales que pueden ser necesarios durante la eliminación de una cuenta. Mi objetivo es mostrarte cómo eliminar un usuario en Linux de forma segura y controlada.
Para eliminar un usuario en Linux de forma segura, el proceso recomendado es el siguiente:
- Bloquear la cuenta: Impide que el usuario inicie sesión mientras realizas el proceso.
- Finalizar procesos: Cierra todas las aplicaciones y servicios que el usuario esté ejecutando.
- Realizar una copia de seguridad: Resguarda los datos del directorio
/homedel usuario. - Eliminar la cuenta y su home: Utiliza los comandos
deluserouserdelcon las opciones adecuadas.
Pasos Previos para Eliminar un Usuario en Linux
Al eliminar un usuario en Linux en un servidor, es necesario realizar algunas acciones adicionales antes de utilizar userdel y deluser.
Creando Usuarios de Prueba
Antes de proceder en un entorno real, es conveniente practicar un poco. Voy a crear dos usuarios, blogal y blogal1, junto con sus directorios personales, para luego eliminarlos:
adduser blogalpasswd blogaladduser blogal1passwd blogal1Aquí, el comando adduser se utiliza para crear la cuenta de usuario, y passwd para establecer una contraseña. Para profundizar en la gestión de contraseñas, puedes consultar mi guía sobre cómo cambiar una contraseña en Linux si la has olvidado.
Paso 1: Bloquear la Cuenta del Usuario
Para bloquear el acceso de un usuario de Linux al sistema, debes utilizar la utilidad passwd y ejecutar el siguiente comando en la terminal:
passwd -l nombre_de_usuarioAquí, la opción -l bloquea la contraseña de la cuenta especificada. Sin embargo, el usuario aún podría iniciar sesión utilizando otro método (por ejemplo, una clave SSH). Para garantizar el bloqueo de la cuenta, se utiliza:
usermod --expiredate 1Este paso establece la fecha de expiración de la cuenta al 2 de enero de 1970. En los sistemas tipo UNIX, esta fecha (el día 1 después de la época UNIX) se utiliza comúnmente como un método para indicar que una cuenta de usuario está bloqueada o deshabilitada.
Paso 2: Finalizar Todos los Procesos Activos
En un servidor, un usuario interactúa con diversos programas y servicios que, a su vez, pueden utilizar archivos de su directorio personal. Si el usuario tiene procesos activos, es necesario finalizarlos antes de eliminar la cuenta, ya que los archivos en uso podrían permanecer en el sistema.
En primer lugar, es necesario identificar los procesos activos que pertenecen al usuario a eliminar para asegurar que no haya nada importante. Para ello, puedes utilizar el comando ps con la opción -u:
ps -u nombre_de_usuarioUna vez identificados los procesos, es necesario finalizarlos. Para detener un proceso específico, se utiliza el comando pkill indicando su nombre:
pkill nombre_del_procesoPara finalizar todos los procesos con un nombre determinado, incluidos los procesos hijos, se utiliza el comando killall:
killall nombre_del_procesoAquí está la clave: ambos comandos envían por defecto la señal SIGTERM (15), lo que permite a los procesos finalizar de forma controlada. Si los procesos no responden a SIGTERM, puedes utilizar la opción -9 (SIGKILL) para forzar su terminación, una de las muchas señales de proceso en Linux:
pkill -9 nombre_del_proceso
killall -9 nombre_del_procesoPara forzar la finalización de todos los procesos pertenecientes a una cuenta específica, es necesario utilizar la opción -u. Si quieres saber más, tengo un artículo completo sobre los comandos kill y killall:
pkill -9 -u nombre_de_usuario
killall -9 -u nombre_de_usuarioAunque ambos comandos son efectivos, pkill suele ser considerado más portable entre diferentes sistemas tipo UNIX. Después de finalizar los procesos del usuario, ejecuta nuevamente el comando ps para verificar que todos se hayan detenido correctamente.
Paso 3: Realizar una Copia de Seguridad de los Datos
Antes de eliminar una cuenta de usuario y todos sus archivos, se recomienda crear una copia de seguridad de su directorio personal. Esto es especialmente importante cuando se trabaja con proyectos críticos. Este paso te permitirá no perder datos valiosos para la empresa.
Para realizar una copia de seguridad, puedes utilizar el comando tar para crear un archivo comprimido del directorio personal del usuario:
tar -cvzf /ruta/a/la/copia/nombre_de_usuario.tar.gz /home/nombre_de_usuarioAquí, /ruta/a/la/copia es la ruta al directorio donde se almacenará la copia de seguridad del directorio /home/nombre_de_usuario. Si no estás familiarizado con este comando, te recomiendo leer mi guía para comprimir y descomprimir archivos .tar.gz.
Comandos para Eliminar un Usuario en Linux desde la Terminal
Para eliminar un usuario en Linux desde la consola, existen dos comandos principales:
deluser(preferido en sistemas Debian/Ubuntu por ser más seguro e interactivo) yuserdel(una herramienta de bajo nivel universal en todas las distribuciones).
El administrador del sistema debe estar familiarizado con ambos. El primero (deluser) ofrece una funcionalidad ampliada y es el método preferido en distribuciones basadas en Debian (como Ubuntu), ya que su comportamiento es más interactivo y seguro. Por su parte, userdel es un comando más universal y de bajo nivel, disponible en la mayoría de las distribuciones (CentOS, Red Hat, Fedora, entre otras).
Es importante recordar que ambos métodos requieren privilegios de superusuario para eliminar cuentas de forma segura.
El Comando deluser (Recomendado en Debian/Ubuntu)
La sintaxis del comando deluser es la siguiente:
deluser [lista_de_opciones] nombre_de_usuarioA continuación, se presenta una tabla con las principales opciones que se pueden utilizar con el comando deluser y su descripción.
| Opción | Descripción |
|---|---|
--remove-all-files | Elimina todos los archivos del sistema que pertenecen a la cuenta, no solo los del directorio personal. Advertencia: esta opción debe usarse con extrema precaución. |
--backup | Crea una copia de seguridad del directorio personal del usuario antes de su eliminación. |
--backup-to | Especifica la ubicación para guardar la copia de seguridad. |
--remove-home | Permite eliminar el usuario de Linux y su home (directorio personal). |
--quiet | Ejecuta el comando en modo “silencioso”, sin solicitar confirmación. |
La configuración del comando deluser se encuentra en el archivo /etc/deluser.conf. Entre otras opciones, allí se especifica qué hacer con el directorio personal y los archivos del usuario. Puedes ver y modificar esta configuración ejecutando el comando:
vi /etc/deluser.confRevisemos en detalle estas configuraciones:
- REMOVE_HOME – Elimina el directorio personal del usuario.
- REMOVE_ALL_FILES – Elimina todos los archivos del usuario.
- BACKUP – Realiza una copia de seguridad de los archivos del usuario.
- BACKUP_TO – Directorio para la copia de seguridad.
- ONLY_IF_EMPTY – Elimina el grupo del usuario si no contiene más miembros.
El Comando userdel (Universal en Linux)
La sintaxis del comando userdel es la siguiente:
userdel [lista_de_opciones] nombre_de_usuarioEl número de opciones de este comando es considerablemente menor que el de deluser. A continuación, se presentan en una tabla junto con su descripción. Para más detalles, siempre puedes consultar su página de manual (man page):
| Opción | Descripción |
|---|---|
-f, --force | Fuerza la eliminación del usuario, incluso si tiene procesos en ejecución. |
-r, --remove | Elimina el usuario de Linux y su home, es decir, su directorio personal y todos los archivos asociados. |
-Z, --selinux-user | Elimina únicamente los objetos de SELinux asociados con la cuenta. |
Ejecutando la Eliminación Final del Usuario
Ahora que todo está preparado, procedemos a la eliminación. La siguiente instrucción te muestra cómo eliminar un usuario en Linux por terminal.
Para Debian/Ubuntu:
deluser --remove-home blogalPara Red Hat/CentOS/Fedora:
userdel --remove blogalUtiliza la opción --remove-all-files de deluser con extrema precaución. Este comando buscará y eliminará todos los archivos propiedad de ese usuario en todo el sistema de archivos, lo cual es muy riesgoso, ya que podrías eliminar accidentalmente archivos importantes que, aunque pertenezcan al usuario, son necesarios para una aplicación o son compartidos con otros usuarios.
deluser --remove-all-files blogalAhora el usuario está completamente eliminado de tu sistema.
Cómo Eliminar un Usuario en Ubuntu con la Interfaz Grafica (GUI)
A continuación te mostraré cómo eliminar un usuario en Linux Ubuntu utilizando la interfaz gráfica. Este método es más simple, pero menos granular que el terminal.
- Abre Configuración del sistema.
- Abre la sección Usuarios.
- Haz clic en el botón Desbloquear e introduce tu contraseña.
- Selecciona el usuario que deseas eliminar y presiona el botón Eliminar usuario.
- En la ventana que se abre, puedes elegir si quieres conservar o eliminar los archivos de su directorio personal.
Naturalmente, solo se eliminará el directorio personal (/home/usuario). Para una eliminación correcta, el usuario no debe tener una sesión activa en el sistema.
Control Total desde la Terminal
Como hemos visto, eliminar un usuario en Linux no es tan complicado. Aunque la interfaz gráfica es más cómoda, el uso de la consola para eliminar un usuario Linux ofrece un control mucho mayor y más posibilidades. Conocer los pasos previos y las diferencias entre deluser y userdel es clave para una administración de sistemas segura y eficiente.
Si tienes alguna otra idea sobre este tema, ¡escríbela en los comentarios!
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.