Cómo eliminar cuentas de usuario con directorio personal en Linux
En este tutorial, voy a seguir los pasos que puede seguir para eliminar la cuenta de un usuario junto con su directorio de inicio en un sistema Linux.
Para aprender cómo crear cuentas de usuario y administrarlas en sistemas Linux, lea los siguientes artículos en los enlaces siguientes:
- 15 ejemplos de comandos "useradd" para administrar cuentas de usuario en Linux
- 15 ejemplos de comandos “usermod” para cambiar/modificar nombres de cuentas de usuario en Linux
- Cómo administrar usuarios y grupos con permisos de archivos en Linux
Como administrador del sistema en Linux, es posible que deba eliminar la cuenta de un usuario después de algún tiempo cuando una cuenta de usuario puede permanecer inactiva durante tanto tiempo, o el usuario puede abandonar la organización o empresa o por cualquier otro motivo.
Al eliminar cuentas de usuario en un sistema Linux, también es importante eliminar su directorio de inicio para liberar espacio en los dispositivos de almacenamiento para nuevos usuarios del sistema u otros servicios.
Eliminar/eliminar una cuenta de usuario con su directorio personal
1. Para fines de demostración, primero comenzaré creando dos cuentas de usuario en mi sistema: el usuario tecmint y el usuario linuxsay con sus directorios de inicio. /home/tecmint y /home/linusay respectivamente usando el comando adduser.
adduser tecmint
passwd tecmint
adduser linuxsay
passwd linuxsay
En la captura de pantalla anterior, utilicé el comando adduser para crear cuentas de usuario en Linux. También puedes usar el comando useradd, ambos son iguales y hacen el mismo trabajo.
2. Avancemos ahora para ver cómo eliminar o eliminar cuentas de usuario en Linux usando deluser (para Debian y sus derivados) y userdel ( Para sistemas basados en RedHat/CentOS).
Las directivas dentro del archivo de configuración para los comandos deluser y userdel determinan cómo manejará todos los archivos y directorios del usuario cuando ejecute el comando.
Veamos el archivo de configuración para el comando deluser que es /etc/deluser.conf
en derivados de Debian como Ubuntu, Kali, Mint y para RHEL/CentOS/Fedora. usuarios, puede ver los archivos /etc/login.defs
.
Los valores en esta configuración son predeterminados y se pueden cambiar según sus necesidades.
vi /etc/deluser.conf [On Debian and its derivatives]
vi /etc/login.defs [On RedHat/CentOS based systems]
3. Para eliminar un usuario con un directorio de inicio, puede utilizar la forma avanzada siguiendo estos pasos en su máquina servidor Linux. Cuando los usuarios inician sesión en el servidor, utilizan servicios y ejecutan diferentes procesos. Es importante tener en cuenta que el usuario sólo se puede eliminar de forma efectiva cuando no ha iniciado sesión en el servidor.
Bloquear cuentas de usuario en Linux
Comience bloqueando la contraseña de la cuenta de usuario para que el usuario no tenga acceso al sistema. Esto evitará que un usuario ejecute procesos en el sistema.
El comando passwd que incluye la opción –lock puede ayudarle a lograr esto:
# passwd --lock tecmint
Locking password for user tecmint.
passwd: Success
Encuentre y elimine todos los procesos en ejecución del usuario
A continuación, descubra todos los procesos en ejecución de la cuenta de usuario y elimínelos determinando los PID (ID de proceso) de los procesos propiedad del usuario usando:
# pgrep -u tecmint
1947
1959
2091
2094
2095
2168
2175
2179
2183
2188
2190
2202
2207
2212
2214
Luego puede enumerar los procesos en términos de nombre de usuario, PID, PPID (ID de proceso principal), terminal utilizado, estado del proceso y ruta de comando en un estilo de formato completo con la ayuda del siguiente comando como se muestra:
# ps -f --pid $(pgrep -u tecmint)
UID PID PPID C STIME TTY STAT TIME CMD
tecmint 1947 1 0 10:49 ? SLl 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
tecmint 1959 1280 0 10:49 ? Ssl 0:00 mate-session
tecmint 2091 1959 0 10:49 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint 2094 1 0 10:49 ? S 0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint 2095 1 0 10:49 ? Ss 0:00 //bin/dbus-daemon --fork --print-pid 6 --print-address 9 --session
tecmint 2168 1 0 10:49 ? Sl 0:00 /usr/lib/dconf/dconf-service
tecmint 2175 1959 0 10:49 ? Sl 0:02 /usr/bin/mate-settings-daemon
tecmint 2179 1959 0 10:49 ? Sl 0:47 marco
tecmint 2183 1 0 10:49 ? Sl 0:00 /usr/lib/gvfs/gvfsd
tecmint 2188 1959 0 10:49 ? Sl 0:00 mate-panel
tecmint 2190 1 0 10:49 ? Sl 0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
tecmint 2202 1 0 10:49 ? S<l 0:20 /usr/bin/pulseaudio --start --log-target=syslog
tecmint 2207 1959 0 10:49 ? S 0:00 /bin/sh /usr/bin/startcaja
tecmint 2212 1 0 10:49 ? Sl 0:03 /usr/bin/python /usr/lib/linuxmint/mintMenu/mintMenu.py
tecmint 2214 1 0 10:49 ? Sl 0:11 /usr/lib/mate-panel/wnck-applet
....
Una vez que encuentre todos los procesos en ejecución del usuario, puede usar el comando killall para finalizar esos procesos en ejecución como se muestra.
killall -9 -u tecmint
El -9 es el número de señal para la señal SIGKILL o use -KILL en lugar de -9 y -u define el nombre de usuario.
Nota: En versiones recientes de RedHat/CentOS 7.x y Fedora 21+, recibirá un mensaje de error como:
-bash: killall: command not found
Para corregir dicho error, debe instalar el paquete psmisc como se muestra:
yum install psmisc [On RedHat/CentOS 7.x]
dnf install psmisc [On Fedora 21+ versions]
Haga una copia de seguridad de los datos del usuario antes de eliminarlos
A continuación, puede hacer una copia de seguridad de los archivos de los usuarios; esto puede ser opcional, pero se recomienda para uso futuro cuando surja la necesidad de revisar los detalles y archivos de la cuenta del usuario.
He utilizado las utilidades tar para crear una copia de seguridad del directorio de inicio de los usuarios de la siguiente manera:
tar jcvf /user-backups/tecmint-home-directory-backup.tar.bz2 /home/tecmint
Eliminar/eliminar cuentas de usuario y archivos
Ahora puede eliminar de forma segura al usuario junto con su directorio de inicio. Para eliminar todos los archivos del usuario en el sistema, utilice la opción --remove-all-files
en el siguiente comando:
deluser --remove-home tecmint [On Debian and its derivatives]
userdel --remove tecmint [On RedHat/CentOS based systems]
Resumen
Todo eso tiene que ver con eliminar el usuario y su directorio de inicio de un sistema Linux. Creo que la guía es bastante fácil de seguir, pero puedes expresar una inquietud o agregar más ideas dejando un comentario.