U moet een oud technicusaccount verwijderen of een lokaal gebruikersaccount opschonen dat niet langer nodig is. Het commando gebruikerdel lijkt eenvoudig, maar zijn optie -R Het programma kan de persoonlijke map inclusief de bijbehorende gegevens verwijderen. Een fout in de accountnaam of een ongebruikelijke thuismap is al voldoende om de verkeerde map te verwijderen.
Ik raad aan om het verwijderen van accounts en bestanden van elkaar te scheiden. Begin met het noteren van de UID, de thuismap, groepen, sessies en processen. Bepaal vervolgens of de gegevens gearchiveerd, overgedragen of verwijderd moeten worden. Deze methode duurt slechts enkele minuten en voorkomt onherstelbaar gegevensverlies.

Bevestig het lokale account en het persoonlijke bestand.
Vervang in de volgende voorbeelden Alice Gebruik de juiste inloggegevens. Verifieer eerst het account via meerdere bronnen:
getent passwd alice
grep '^alice:' /etc/passwd
Identiteit Alice
krijgen krijgen maar niet erin /etc/passwdniet lanceren gebruikerdel Dit detail beschrijft het verschil tussen lokale rekeningen en rekeningen die door NSS worden verstrekt.
Sla vervolgens de UID en het thuispad op in uw beheerderssessie:
uid=$(id -u alice)
home=$(getent passwd alice | cut -d: -f6)
echo "UID=$uid HOME=$home"
id -nG alice
sudo ls -ld "$home"
, /srv of een gedeelde map. Vertrouw niet alleen op het voorvoegsel. /thuisControleer ook of je niet je eigen SSH-account verwijdert, of een account dat door een applicatie wordt gebruikt.
Beheer sessies, processen en geplande taken
Een account dat niet zichtbaar is op het inlogscherm, kan nog steeds een service, back-up of cronjob uitvoeren. Controleer sessies en processen voordat u ze stopt:
WHO
w
loginctl list-sessions
pgrep -a -u alice
ps -u alice -o pid,ppid,lstart,cmd
Als u een bedrijfsproces vindt, identificeer dan de bijbehorende service en draag de configuratie over naar een technisch account voordat u het verwijdert. doden -9 Dit is geen procedure voor het vertrek van een werknemer. Het artikel over doden op Linux legt uit hoe je een schone stop kunt aanvragen en de kranten kunt lezen voordat je je een weg baant.
Controleer ook de crontab- en systemd-units die naar deze aanmelding verwijzen:
sudo crontab -u alice -l
[:space:][:space:]
De opstelling USERDEL_CMD In /etc/login.defs Het kan een script starten om cron-, at- of printtaken op te ruimen, maar dit is niet op alle distributies hetzelfde. login.defs documentatie bevestigt dat het resultaat van dit script niet in aanmerking wordt genomen door gebruikerdelSla taken daarom expliciet op of verwijder ze voordat u het account opent.
Om de wachtwoordverificatie tijdelijk te blokkeren tijdens uw controles:
sudo passwd -l alice
Deze vergrendeling sluit actieve sessies niet af en blokkeert niet per se SSH-sleutels. Controleer deze toegangspunten afzonderlijk. De handleiding over passwd onder Linux beschrijft deze limiet.
Doorzoek de accountbestanden voordat u de homepage bezoekt.
De thuismap van de gebruiker is niet de enige plek waar een gebruiker bestanden kan opslaan. Zoek naar hun UID in de locaties die door de server worden gebruikt:
sudo find /home /srv /var/www -xdev -uid "$uid" -print
Pas de beginwaarden aan uw volumes aan. De optie -xdev vinden / geïmproviseerd op een productieserver of zeer grote netwerkopslag.
Als de gegevens bewaard moeten blijven, controleer dan de beschikbare ruimte en maak vervolgens een archief van de thuismap:
df -h /root "$home"
sudo du -sh "$home"
sudo tar --one-file-system -C "$(dirname "$home")" -czf "/root/alice-home-$(date +%F).tar.gz" "$(basename "$home")"
sudo tar -tzf "/root/alice-home-$(date +%F).tar.gz" | head
Een leesbare archieflijst is geen vervanging voor een geteste herstelprocedure. Gebruik voor een belangrijke thuismap uw gebruikelijke back-up of een momentopname en test vervolgens een paar herstelde bestanden op een andere locatie.
-R Verwijdert het account uit de systeembestanden, maar behoudt de persoonlijke map:
sudo userdel alice
Dit is mijn standaardkeuze wanneer de gegevens nog niet door de eigenaar zijn gevalideerd of naar een ander account zijn overgedragen. U kunt de map later, na controle, verwijderen.
Als de thuis- en lokale mailbox echt moeten verdwijnen, gebruik dan:
sudo userdel -r alice
Volgens de userdel manpagina, -R Deze opdracht verwijdert de mappen ‘Home’ en ‘Mail Spool’, maar niet de bestanden die eigendom zijn van de gebruiker op andere bestandssystemen. Daarom vervangt deze opdracht de inventarisatie die met de UID is uitgevoerd niet.
Niet gebruiken userdel-f Om een bericht over actieve processen te omzeilen. Deze optie negeert beveiligingscontroles en kan het systeem in een inconsistente staat achterlaten. Terug naar pgrep
Controleer wat er overblijft na het verwijderen van de gebruiker.
Gebruik dezelfde shell-sessie om de variabelen te behouden. $uid En $thuisControleer vervolgens het resultaat:
Identiteit Alice
pgrep -a -u "$uid"
test -e "$home" && sudo ls -ld "$home" || echo "Persoonlijke map ontbreekt"
sudo find /home /srv /var/www -xdev -uid "$uid" -ls
Identiteit Alice Dit zou moeten aangeven dat de login niet meer bestaat. Als er nog bestanden met de oude UID aanwezig zijn, bepaal dan per map of ze gearchiveerd, opnieuw toegewezen of verwijderd moeten worden. Pas geen chown -R wereldwijd zonder de rol van de data te kennen.
Controleer tot slot de groepen, systemd-configuraties, elders gekopieerde SSH-sleutels en geplande taken voordat u de bestanden verwijdert. De UID kan in de toekomst door een nieuw account opnieuw worden gebruikt: het onbeheerd achterlaten van achtergebleven bestanden creëert een permissieprobleem dat moeilijk te detecteren is.