Cómo eliminar un usuario en Linux (y eliminar todos los rastros)

Eliminar un usuario en Linux implica más de lo que cree. Si es un administrador de sistemas, querrá eliminar todos los rastros de la cuenta y su acceso desde sus sistemas. Te mostramos los pasos a seguir.

Si solo desea eliminar una cuenta de usuario de su sistema y no le preocupa finalizar los procesos en ejecución y otras tareas de limpieza, siga los pasos de la sección «Eliminación de la cuenta de usuario» a continuación. Necesitará el comando deluser en distribuciones basadas en Debian y el comando userdel en otras distribuciones de Linux.

Cuentas de usuario en Linux

Desde el Los primeros sistemas de tiempo compartido aparecieron a principios de la década de 1960. y trajo consigo la capacidad para que varios usuarios trabajen en una sola computadora, existía la necesidad de aislar y compartimentar los archivos y datos de cada usuario de todos los demás usuarios. Y entonces cuentas de usuarioy contraseñas-nació.

Las cuentas de usuario tienen una sobrecarga administrativa. Deben crearse cuando el usuario necesita acceder por primera vez a la computadora. Deben eliminarse cuando ese acceso ya no sea necesario. En Linux, hay una secuencia de pasos que se deben seguir para eliminar correcta y metódicamente al usuario, sus archivos y su cuenta de la computadora.

Si es el administrador del sistema, esa responsabilidad recae en usted. He aquí cómo hacerlo.

Nuestro escenario

Hay varias razones por las que es posible que deba eliminar una cuenta. Un miembro del personal puede mudarse a un equipo diferente o dejar la empresa por completo. Es posible que la cuenta se haya configurado para una colaboración a corto plazo con un visitante de otra empresa. Los equipos de trabajo son comunes en el mundo académico, donde los proyectos de investigación pueden abarcar departamentos, diferentes universidades e incluso entidades comerciales. Al finalizar el proyecto, el administrador del sistema debe realizar la limpieza y eliminar las cuentas innecesarias.

El peor de los casos es cuando alguien se va bajo una nube debido a un delito menor. Estos eventos suelen ocurrir de repente, con poca advertencia previa. Eso le da al administrador del sistema muy poco tiempo para planificar y una urgencia para bloquear, cerrar y eliminar la cuenta, con una copia de los archivos del usuario respaldados en caso de que sean necesarios para cualquier análisis forense posterior al cierre.

En nuestro escenario, pretendemos que un usuario, Eric, ha hecho algo que justifica su eliminación inmediata de las instalaciones. En este momento él no se da cuenta de esto, todavía está trabajando y ha iniciado sesión. Tan pronto como le dé el visto bueno a seguridad, lo escoltarán fuera del edificio.

  Cómo instalar y usar el Administrador de tareas de Nozbe en Linux

Todo está listo. Todos los ojos están puestos en ti.

Compruebe el inicio de sesión

Veamos si realmente ha iniciado sesión y, si lo está, con cuántas sesiones está trabajando. El que manda enumerará las sesiones activas.

who

quien en una ventana de terminal

Eric ha iniciado sesión una vez. Veamos qué procesos está ejecutando.

Revisión de los procesos del usuario

Podemos usar el comando ps para enumerar los procesos que este usuario está ejecutando. La opción -u (usuario) nos permite decirle a ps que restrinja su salida a los procesos que se ejecutan bajo la propiedad de esa cuenta de usuario.

ps -u eric

ps -u eric en una ventana de terminal

Podemos ver los mismos procesos con más información usando el comando top. top también tiene una opción -U (usuario) para restringir la salida a los procesos propiedad de un solo usuario. Tenga en cuenta que esta vez es una «U» mayúscula.

top -U eric

top -U eric en una ventana de terminal

Podemos ver el uso de la memoria y la CPU de cada tarea y podemos buscar rápidamente cualquier cosa con actividad sospechosa. Estamos a punto de eliminar por la fuerza todos sus procesos, por lo que es más seguro tomarse un momento para revisar rápidamente los procesos y verificar y asegurarse de que otros usuarios no sufrirán inconvenientes cuando cancele los procesos de la cuenta de usuario de Eric.

Salida desde arriba -U eric en una ventana de terminal

No parece que esté haciendo mucho, solo usa menos para ver un archivo. Estamos a salvo para continuar. Pero antes de matar sus procesos, congelaremos la cuenta bloqueando la contraseña.

Bloquear la cuenta

Bloquearemos la cuenta antes de matar los procesos porque cuando matamos los procesos cerrará la sesión del usuario. Si ya cambiamos su contraseña, no podrá volver a iniciar sesión.

Las contraseñas de usuario cifradas se almacenan en el archivo / etc / shadow. Normalmente no se molestaría con estos pasos siguientes, pero para que pueda ver lo que sucede en el archivo / etc / shadow cuando bloquee la cuenta, tomaremos un pequeño desvío. Podemos usar el siguiente comando para ver los dos primeros campos de la entrada de la cuenta de usuario eric.

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow en una ventana de terminal

El comando awk analiza campos de archivos de texto y opcionalmente los manipula. Estamos usando la opción -F (separador de campo) para decirle a awk que el archivo usa dos puntos ”:” para separar los campos. Vamos a buscar una línea con el patrón “eric”. Para las líneas coincidentes, imprimiremos el primer y segundo campo. Estos son el nombre de la cuenta y la contraseña cifrada.

La entrada para la cuenta de usuario eric se imprime para nosotros.

Para bloquear la cuenta usamos el comando passwd. Usaremos la opción -l (bloqueo) y pasar el nombre de la cuenta de usuario para bloquear.

sudo passwd -l eric

sudo passwd -l eric en una ventana de terminal

Si revisamos el archivo / etc / passwd nuevamente, veremos qué sucedió.

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow en una ventana de terminal

Se ha añadido un signo de exclamación al principio de la contraseña cifrada. No sobrescribe el primer carácter, solo se agrega al inicio de la contraseña. Eso es todo lo que se requiere para evitar que un usuario pueda iniciar sesión en esa cuenta.

  Cómo hacer una copia de seguridad de los temas GTK de su PC con Linux

Ahora que hemos evitado que el usuario vuelva a iniciar sesión, podemos matar sus procesos y cerrar la sesión.

Matar los procesos

Hay diferentes formas de matar los procesos de un usuario, pero el comando que se muestra aquí está ampliamente disponible y es una implementación más moderna que algunas de las alternativas. El comando pkill encontrará y matará procesos. Pasamos la señal KILL y usamos la opción -u (usuario).

sudo pkill -KILL -u eric

sudo pkill -KILL -u eric en una ventana de terminal

Regresará al símbolo del sistema de una manera decididamente anticlimática. Para asegurarnos de que sucedió algo, revisemos quién nuevamente:

who

quien en una ventana de terminal

Su sesión se ha ido. Se ha desconectado y sus procesos se han detenido. Eso le quitó algo de urgencia a la situación. Ahora podemos relajarnos un poco y continuar con el resto de la limpieza mientras los de seguridad se acercan al escritorio de Eric.

Archivar el directorio de inicio del usuario

No está fuera de discusión que en un escenario como este, se requerirá acceso a los archivos del usuario en el futuro. Ya sea como parte de una investigación o simplemente porque su reemplazo puede necesitar hacer referencia al trabajo de su predecesor. Usaremos el comando tar para archivar todo su directorio de inicio.

Las opciones que estamos usando son:

c: crea un archivo de almacenamiento.
f: Utilice el nombre de archivo especificado para el nombre del archivo.
j: Utilice la compresión bzip2.
v: proporciona una salida detallada a medida que se crea el archivo.

sudo tar cfjv eric-20200820.tar.bz /home/eric

sudo tar cfjv eric-20200820.tar.bz / home / eric en una ventana de terminal

Una gran cantidad de salida de pantalla se desplazará en la ventana del terminal. Para comprobar que se ha creado el archivo, utilice el comando ls. Estamos usando las opciones -l (formato largo) y -h (legible por humanos).

ls -lh eric-20200802.tar.bz

sudo tar cfjv eric-20200820.tar.bz / home / eric en una ventana de terminal

Se ha creado un archivo de 722 MB. Esto se puede copiar en un lugar seguro para su posterior revisión.

Eliminar trabajos cron

Será mejor que verifiquemos si hay trabajos cron programados para la cuenta de usuario eric. Un trabajo cron es un comando que se activa en momentos o intervalos específicos. Podemos verificar si hay trabajos cron programados para esta cuenta de usuario usando ls:

sudo ls -lh /var/spool/cron/crontabs/eric

sudo ls -lh / var / spool / cron / crontabs / eric en una ventana de terminal

Si existe algo en esta ubicación, significa que hay trabajos cron en cola para esa cuenta de usuario. Podemos eliminarlos con este comando crontab. La opción -r (eliminar) eliminará los trabajos y la opción -u (usuario) le dice a crontab cuyos trabajos eliminar.

sudo crontab -r -u eric

sudo crontab -r -u eric en una ventana de terminal

Los trabajos se eliminan silenciosamente. Por lo que sabemos, si Eric hubiera sospechado que estaba a punto de ser desalojado, podría haber programado un trabajo malicioso. Este paso es la mejor práctica.

  Cómo alojar un servidor Mumble en Linux

Eliminación de trabajos de impresión

¿Quizás el usuario tenía trabajos de impresión pendientes? Solo para estar seguros, podemos purgar la cola de impresión de cualquier trabajo que pertenezca a la cuenta de usuario eric. El comando lprm elimina trabajos de la cola de impresión. La opción -U (nombre de usuario) le permite eliminar trabajos que pertenecen a la cuenta de usuario nombrada:

lprm -U eric

lprm -U eric en una ventana de terminal

Los trabajos se eliminan y vuelve a la línea de comandos.

Eliminar la cuenta de usuario

Ya hicimos una copia de seguridad de los archivos del directorio / home / eric /, por lo que podemos continuar y eliminar la cuenta de usuario y eliminar el directorio / home / eric / al mismo tiempo.

El comando a usar depende de la distribución de Linux que esté usando. por Distribuciones de Linux basadas en Debian, el comando es engañoso, y para el resto del mundo Linux, es userdel.

De hecho, en Ubuntu ambos comandos están disponibles. Casi esperaba que uno fuera un alias del otro, pero son binarios distintos.

type deluser
type userdel

escriba deluser en una ventana de terminal

Aunque ambos están disponibles, la recomendación es usar deluser sobre distribuciones derivadas de Debian:

“Userdel es una utilidad de bajo nivel para eliminar usuarios. En Debian, los administradores deberían utilizar deluser (8) en su lugar «.

Eso es lo suficientemente claro, por lo que el comando para usar en esta computadora Ubuntu es deluser. Debido a que también queremos que se elimine su directorio de inicio, estamos usando la marca –remove-home:

sudo deluser --remove-home eric

sudo deluser --remove-home eric en una ventana de terminal

El comando que se debe usar para distribuciones que no son de Debian es userdel, con el indicador –remove:

sudo userdel --remove eric

Se han borrado todos los rastros de la cuenta de usuario Eric. Podemos comprobar que se ha eliminado el directorio / home / eric /:

ls /home

ls / home en una ventana de terminal

El grupo eric también se ha eliminado porque la cuenta de usuario eric era la única entrada en él. Podemos comprobar esto con bastante facilidad canalizando el contenido de / etc / group a través de grep:

sudo less /etc/group | grep eric

sudo menos / etc / group |  grep eric en una ventana de terminal

Es una envoltura

Eric, por sus pecados, se ha ido. Seguridad todavía lo está sacando del edificio y ya ha protegido y archivado sus archivos, ha eliminado su cuenta y ha purgado el sistema de cualquier resto.

La precisión siempre triunfa sobre la velocidad. Asegúrese de considerar cada paso antes de darlo. No querrás que alguien se acerque a tu escritorio y diga «No, el otro Eric».