Necesitas eliminar una cuenta de técnico antigua o limpiar una cuenta de usuario local que ya no sea necesaria. El comando usuariodel Parece sencillo, pero su opción -r Puede eliminar la carpeta personal junto con sus datos. Un error en el nombre de la cuenta o un directorio de inicio inusual son suficientes para eliminar la carpeta incorrecta.
Recomiendo separar la eliminación de la cuenta de la eliminación de archivos. Comience anotando el UID, el directorio principal, los grupos, las sesiones y los procesos. Luego, decida si los datos deben archivarse, transferirse o eliminarse. Este método toma solo unos minutos y evita la pérdida irreversible de datos.

Confirme la cuenta local y el archivo personal.
En los siguientes ejemplos, reemplace Alicia Utilizando el nombre de usuario correcto. Primero, verifique la cuenta con varias fuentes:
obtener contraseña alice
grep '^alice:' /etc/passwd
identificación de alicia
getent getent pero no en /etc/passwdno lanzar usuariodel A ciegas: procese la cuenta en el directorio que la administra. La guía para listar usuarios de Linux Detalla esta diferencia entre las cuentas locales y las cuentas proporcionadas por NSS.
A continuación, guarda el UID y la ruta de inicio en tu sesión de administración:
home=$(getent passwd alice | cut -d: -f6)
echo "UID=$uid HOME=$home"
id -nG alice
sudo ls -ld "$home"
Revise el resultado antes de continuar. Una cuenta de servicio puede tener un directorio principal. /var/lib, o un directorio compartido. No te fíes solo del prefijo. /hogarComprueba también que no estés eliminando tu propia cuenta SSH ni una cuenta utilizada por una aplicación.
Es posible que una cuenta que no aparece en la pantalla de inicio de sesión siga ejecutando un servicio, una copia de seguridad o una tarea programada (cron job). Revise las sesiones y los procesos antes de detenerlos.
OMS
w
loginctl listar sesiones
pgrep -a -u alice
Si encuentra un proceso de negocio, identifique su servicio y transfiera su configuración a una cuenta técnica antes de eliminarlo. matar -9 Este no es un procedimiento para la salida de un empleado. El artículo sobre matar en linux Explica cómo solicitar una parada sin tráfico y leer los periódicos antes de intentar pasar a la fuerza.
sudo crontab -u alice -l
[:space:]sudo grep -R --line-number '^[]*User=alice[]*$' /etc/systemd/system /usr/lib/systemd/system 2>/dev/null[:space:]
la configuración COMANDO_DE_USUARIO En /etc/login.defs Puede ejecutar un script para limpiar tareas programadas (cron, at o print), pero no es igual en todas las distribuciones. Documentación de login.defs confirma que el resultado de este script no se tiene en cuenta por usuariodelPor lo tanto, guarde o elimine las tareas explícitamente antes de la cuenta.
Para congelar temporalmente la autenticación de contraseña durante sus comprobaciones:
sudo passwd -l alice
passwd en Linux detalla este límite.
Busque en los archivos de la cuenta antes de acceder a la página principal.
La carpeta personal del usuario no es el único lugar donde puede almacenar archivos. Busque su UID en las ubicaciones utilizadas por el servidor:
sudo find /home /srv /var/www -xdev -uid "$uid" -print
-xdev impide que cada búsqueda se desplace a otro sistema de archivos; por lo tanto, repita el comando en los puntos de montaje de datos afectados. Evite un encontrar / improvisado en un servidor de producción o en un sistema de almacenamiento de red muy grande.
Si es necesario conservar los datos, compruebe el espacio disponible y, a continuación, cree un archivo del directorio principal:
df -h /root "$home"
sudo du -sh "$home"
sudo tar -tzf "/root/alice-home-$(date +%F).tar.gz" | head
Una lista de archivos legible no sustituye a una restauración probada. Para un directorio personal importante, utilice su copia de seguridad habitual o una instantánea, y luego pruebe algunos archivos restaurados en una ubicación diferente.
Elige entre conservar el directorio personal o eliminarlo.
el orden sin -r Elimina la cuenta de los archivos del sistema, pero conserva su carpeta personal:
Esta es mi opción predeterminada cuando los datos aún no han sido validados por su propietario ni transferidos a otra cuenta. Puede eliminar el directorio posteriormente, tras su revisión.
Si realmente necesita eliminar el correo postal de su casa y su buzón local, utilice:
sudo userdel -r alice
Según el página de manual de usuario -r Elimina las carpetas de inicio y de cola de correo, pero no los archivos propiedad del usuario en otros sistemas de archivos. Por lo tanto, este comando no reemplaza el inventario realizado con el UID.
usuariodel -f para omitir un mensaje que indica procesos activos. Esta opción ignora las comprobaciones de seguridad y puede dejar el sistema en un estado inconsistente. Volver a pgrepIdentifique el servicio en cuestión, desactívelo correctamente y, a continuación, reinicie el proceso de eliminación.
Compruebe qué queda después de userdel
$fluido Y $casaLuego, compruebe el resultado:
getent passwd alice || echo "Cuenta no disponible"
identificación de alicia
pgrep -a -u "$uid"
test -e "$home" && sudo ls -ld "$home" || echo "Falta la carpeta personal"
sudo find /home /srv /var/www -xdev -uid "$uid" -ls
identificación de alicia Esto debería indicar que el inicio de sesión ya no existe. Si quedan archivos con el UID antiguo, decida carpeta por carpeta si deben archivarse, reasignarse o eliminarse. No aplique una chown-R global sin conocer el papel de los datos.
Finalmente, antes de eliminar los archivos, revise los grupos, las configuraciones de systemd, las claves SSH copiadas en otro lugar y las tareas programadas. El UID podría ser reutilizado por una nueva cuenta en el futuro: dejar archivos huérfanos sin corregir genera un problema de permisos difícil de detectar.