Eliminar un usuario en Linux implica más de lo que piensas. Si es administrador del sistema, querrá purgar todos los rastros de la cuenta y su acceso desde sus sistemas. Te mostraremos los pasos a seguir.
Si solo desea eliminar una cuenta de usuario de su sistema y no le preocupa finalizar ningún proceso en ejecución y otras tareas de limpieza, siga los pasos en la sección “Eliminar la cuenta de usuario” a continuación. Necesitarás el deluser
en distribuciones basadas en Debian y el comando userdel
en otras distribuciones de Linux.
¿De qué vamos a hablar?
- 1 Cuentas de usuario en Linux
- 2 Nuestro escenario
- 3 Compruebe el inicio de sesión
- 4 Revisión de los procesos del usuario
- 5 Bloqueo de la cuenta
- 6 Matar los procesos
- 7 Archivado del directorio principal del usuario
- 8 Eliminación de trabajos cron
- 9 Eliminación de trabajos de impresión
- 10 Eliminación de la cuenta de usuario
- 11 Es una envoltura
Cuentas de usuario en Linux
Desde el Los primeros sistemas de tiempo compartido aparecieron a principios de la década de 1960 y traídos con ellos la capacidad de que múltiples usuarios trabajen en una sola computadora, ha habido una necesidad de aislar y compartimentar los archivos y datos de cada usuario de todos los demás usuarios. Y así, las cuentas de usuario:y contraseñas—nacieron.
Las cuentas de usuario tienen una sobrecarga administrativa. Deben crearse cuando el usuario necesita acceso a la computadora por primera vez. Deben eliminarse cuando ese acceso ya no sea necesario. En Linux, hay una secuencia de pasos que deben seguirse para eliminar correcta y metódicamente al usuario, sus archivos y su cuenta de la computadora.
Si usted es el administrador del sistema, esa responsabilidad recae en usted. A continuación, le indicamos cómo hacerlo.
Nuestro escenario
Hay varias razones por las que es posible que sea necesario eliminar una cuenta. Un miembro del personal puede estar mudándose a un equipo diferente o dejando la empresa por completo. La cuenta podría haber sido configurada para una colaboración a corto plazo con un visitante de otra empresa. Los equipos son comunes en el mundo académico, donde los proyectos de investigación pueden abarcar departamentos, diferentes universidades e incluso entidades comerciales. Al final del proyecto, el administrador del sistema tiene que 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. Tales eventos generalmente ocurren repentinamente, 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, pretenderemos que un usuario, Eric, ha hecho algo que justifica su eliminación inmediata de las instalaciones. En este momento no es consciente de esto, todavía está trabajando e inició sesión. Tan pronto como des el guiño a la seguridad, será escoltado fuera del edificio.
Todo está listo. Todos los ojos están puestos en ti.
Compruebe el inicio de sesión
Veamos si realmente está conectado y, si lo está, con cuántas sesiones está trabajando. El who
mandar enumerará las sesiones activas.
who
Eric ha iniciado sesión una vez. Veamos qué procesos está ejecutando.
Revisión de los procesos del usuario
Podemos utilizar el ps
comando a Enumere los procesos que este usuario está ejecutando. El -u
La opción (usuario) nos permite decir ps
para restringir su salida a los procesos que se ejecutan bajo la propiedad de esa cuenta de usuario.
ps -u eric
Podemos ver los mismos procesos con más información utilizando el top
mandar. top
también tiene un -U
(usuario) opción 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
Podemos ver el uso de memoria y CPU de cada tarea, y podemos buscar rápidamente cualquier cosa con actividad sospechosa. Estamos a punto de matar 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 se verán incomodadas cuando cancele la cuenta de usuario. eric
‘s procesos.
No parece que esté haciendo mucho, solo usando less
para ver un archivo. Estamos seguros de proceder. Pero antes de matar sus procesos, congelaremos la cuenta bloqueando la contraseña.
Bloqueo de la cuenta
Bloquearemos la cuenta antes de matar los procesos porque cuando matemos los procesos, cerrará la sesión del usuario. Si ya hemos cambiado su contraseña, no podrá volver a iniciar sesión.
Las contraseñas de usuario cifradas se almacenan en el /etc/shadow
archivo. Normalmente no te molestarías con estos siguientes pasos, pero para que puedas ver lo que sucede en el /etc/shadow
cuando bloquee la cuenta, tomaremos un ligero desvío. Podemos usar el siguiente comando para mirar los dos primeros campos de la entrada para el eric
cuenta de usuario.
sudo awk -F: '/eric/ {print €1,€2}' /etc/shadow
El comando awk analiza los campos from archivos de texto y opcionalmente los manipula. Estamos usando el -F
(separador de campos) opción para decir awk
que el archivo utiliza dos puntos ” :
” para separar los campos. Vamos a buscar una línea con el patrón “eric” en ella. Para hacer coincidir las líneas, 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 está impresa para nosotros.
Para bloquear la cuenta utilizamos el passwd
mandar. Usaremos el -l
(bloquear) opción y Pasar el nombre de la cuenta de usuario que se bloquear.
sudo passwd -l eric
Si comprobamos el /etc/passwd
de nuevo, veremos qué ha pasado.
sudo awk -F: '/eric/ {print €1,€2}' /etc/shadow
Se ha añadido un signo de exclamación al inicio 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.
Ahora que hemos evitado que el usuario vuelva a iniciar sesión, podemos matar sus procesos y cerrarle 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 pkill
el comando buscará y matará procesos. Estamos pasando la señal KILL y usando el -u
(usuario) opción.
sudo pkill -KILL -u eric
Volverás al símbolo del sistema de una manera decididamente anticlimática. Para asegurarnos de que algo sucedió, verifiquemos who
otra vez:
who
Su sesión se ha ido. Ha sido desconectado y sus procesos se han detenido. Eso ha quitado algo de urgencia a la situación. Ahora podemos relajarnos un poco y continuar con el resto de la limpieza mientras la seguridad da un paseo hasta el escritorio de Eric.
Archivado del directorio principal del usuario
No está fuera de duda 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 referirse al trabajo de su predecesor. Usaremos el tar
mandar para archivar todo su directorio principal.
Las opciones que estamos utilizando son:
- c: Cree un archivo comprimido.
- f: Utilice el nombre de archivo especificado para el nombre del archivo.
- j: Utilice la compresión bzip2.
- v: Proporcione resultados detallados a medida que se crea el archivo.
sudo tar cfjv eric-20200820.tar.bz /home/eric
Una gran cantidad de salida de pantalla se desplazará en la ventana del terminal. Para comprobar que se ha creado el archivo, utilice el ls
mandar. Estamos usando el -l
(formato largo) y -h
opciones (legibles por humanos).
ls -lh eric-20200802.tar.bz
Se ha creado un archivo de 722 MB. Esto se puede copiar en un lugar seguro para su posterior revisión.
Eliminación de trabajos cron
Será mejor que lo revisemos en caso de que haya alguno cron
trabajos programados para la cuenta de usuario eric
. Un cron
job es un comando que se activa en momentos o intervalos especificados. Podemos comprobar si hay alguno cron
Trabajos programados para esta cuenta de usuario mediante ls
:
sudo ls -lh /var/spool/cron/crontabs/eric
Si algo existe en esta ubicación significa que hay cron
trabajos en cola para esa cuenta de usuario. Podemos eliminarlos con esto crontab
mandar. El -r
(eliminar) la opción eliminará los trabajos, y el -u
(usuario) opción indica crontab
cuyos trabajos eliminar.
sudo crontab -r -u eric
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 una práctica recomendada.
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 lprm
mandar Quita trabajos de la cola de impresión. El -U
La opción (nombre de usuario) le permite eliminar trabajos propiedad de la cuenta de usuario con nombre:
lprm -U eric
Los trabajos se eliminan y se le devuelve a la línea de comandos.
Eliminación de la cuenta de usuario
Ya hemos hecho una copia de seguridad de los archivos del /home/eric/
directorio, por lo que podemos seguir adelante y eliminar la cuenta de usuario y eliminar el /home/eric/
al mismo tiempo.
El comando a usar depende de la distribución de Linux que esté utilizando. Para Distribuciones linux basadas en Debian, el comando es deluser
y para el resto del mundo LinuxLo es userdel
.
En realidad, en Ubuntu ambos comandos están disponibles. Esperaba a medias que uno fuera un alias del otro, pero son binarios distintos.
type deluser
type userdel
Aunque ambos están disponibles, el 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 suelen usar 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 utilizando el --remove-home
bandera:
sudo deluser --remove-home eric
El comando que se debe usar para distribuciones que no son de Debian es userdel
, con el --remove
bandera:
sudo userdel --remove eric
Todos los rastros de la cuenta de usuario eric
han sido borrados. Podemos comprobar que el /home/eric/
se ha eliminado el directorio:
ls /home
El eric
El grupo también se ha quitado porque la cuenta de usuario eric
fue 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
Es una envoltura
Eric, por sus pecados, se ha ido. La seguridad todavía lo está sacando del edificio y ya ha asegurado y archivado sus archivos, eliminado su cuenta y purgado el sistema de cualquier resto.
La precisión siempre triunfa sobre la velocidad. Asegúrese de considerar cada paso antes de darlo. No quieres que alguien se afiiente a tu escritorio y diga “No, el otro Eric”.