Potřebujete odstranit starý účet technika nebo vyčistit lokální uživatelský účet, který již nepotřebujete. Příkaz userdel Zdá se to jednoduché, ale jeho možnost -r Může smazat osobní složku spolu s jejími daty. Chyba v názvu účtu nebo neobvyklý domovský adresář stačí k odstranění nesprávné složky.
Doporučuji oddělit smazání účtu od smazání souboru. Začněte tím, že si zaznamenáte UID, domovský adresář, skupiny, relace a procesy. Poté rozhodněte, zda mají být data archivována, přenesena nebo smazána. Tato metoda trvá několik minut a zabraňuje nevratné ztrátě dat.

Potvrďte místní účet a osobní soubor
V následujících příkladech nahraďte alice pomocí správných přihlašovacích údajů. Nejprve ověřte účet pomocí více zdrojů:
grep '^alice:' /etc/passwd
id Alice
getent může vrátit účet z LDAP, SSSD nebo jiného adresáře. Pokud se uživatel zobrazí s getent ale ne dovnitř /etc/heslonespouštět userdel Naslepo: zpracujte účet v adresáři, který jej spravuje. Průvodce pro seznam uživatelů Linuxu podrobně popisuje tento rozdíl mezi lokálními účty a účty poskytovanými NSS.
Dále uložte UID a domovskou cestu ve vaší administrátorské relaci:
uid=$(id -u alice)
home=$(getent heslo alice | cut -d: -f6)
echo "UID=$uid HOME=$home"
id -nG alice
sudo ls -ld "$domov"
Před pokračováním si zkontrolujte výstup. Servisní účet může mít domovský adresář. /var/lib, /srv nebo sdílený adresář. Nespoléhejte se pouze na prefix. /domovTaké zkontrolujte, zda nemažete svůj vlastní SSH účet nebo účet používaný nějakou aplikací.
Řízení relací, procesů a naplánovaných úloh
Účet, který není viditelný na přihlašovací obrazovce, může stále používat službu, zálohu nebo úlohu cron. Před zastavením relací a procesů je zkontrolujte:
SZO
w
seznam relací loginctl
pgrep -a -u alice
ps -u alice -o pid,ppid,lstart,cmd
Pokud najdete obchodní proces, identifikujte jeho službu a před jeho smazáním přeneste jeho konfiguraci na technický účet. zabít -9 zabít na Linuxu vysvětluje, jak požádat o bezproblémové zastavení a přečíst si noviny, než se prodíráte dál.
Zkontrolujte také jednotky crontab a systemd, které odkazují na toto přihlašovací jméno:
[:space:]sudo grep -R --line-number '^[]*Uživatel=alice[]*$' /etc/systemd/system /usr/lib/systemd/system 2>/dev/null[:space:]
Nastavení PŘÍKAZ_UŽIVATELE /etc/login.defs Může spustit skript pro vyčištění úloh cron, at nebo print, ale není to stejné na všech distribucích. Dokumentace k souboru login.defs potvrzuje, že výsledek tohoto skriptu není zohledněn userdelProto ukládejte nebo mažte úkoly explicitně před účtem.
Chcete-li dočasně pozastavit ověřování heslem během kontrol:
sudo passwd -l alice
Tento zámek neuzavírá aktivní relace a nemusí nutně blokovat klíče SSH. Zkontrolujte tyto přístupové body samostatně. Průvodce na heslo v Linuxu podrobně popisuje tento limit.
Před kliknutím na domovskou stránku vyhledejte soubory účtu.
sudo find /home /srv /var/www -xdev -uid "$uid" -print
Upravte počáteční body podle objemů. Možnost -xdev zabraňuje každému vyhledávání v přechodu do jiného souborového systému; proto příkaz opakujte na dotčených připojeních dat. Vyhněte se najít / improvizované na produkčním serveru nebo velmi velkém síťovém úložišti.
Pokud je potřeba data uchovat, zkontrolujte dostupný prostor a poté vytvořte archiv domovského adresáře:
df -h /root "$domov"
sudo du -sh "$home"
sudo tar --one-file-system -C "$(název_souboru "$home")" -czf "/root/alice-home-$(date +%F).tar.gz" "$(základní_název "$home")"
sudo tar -tzf "/root/alice-home-$(date +%F).tar.gz" | hlavička
Čitelný seznam archivů nenahradí otestovanou obnovu. Pro důležitý domovský adresář použijte obvyklou zálohu nebo snímek a poté otestujte několik obnovených souborů na jiném místě.
Vyberte si mezi zachováním domovského adresáře a jeho smazáním.
Objednávka bez -r odstraní účet ze systémových souborů, ale zachová jeho osobní složku:
sudo userdel alice
Pokud je opravdu potřeba odstranit domácí a místní poštovní schránku, použijte:
Podle uživatelská manuálová stránka, Odstraní domovské složky a složky pro zařazování pošty, ale nikoli soubory vlastněné uživateli v jiných souborových systémech. Tento příkaz proto nenahrazuje inventuru provedenou pomocí UID.
Nepoužívejte userdel -f pgrepIdentifikujte danou službu, řádně ji vypněte a poté restartujte proces mazání.
Zkontrolujte, co zůstane po userdelu.
Zachovat stejnou relaci shellu pro zachování proměnných $uid A $domůPak zkontrolujte výsledek:
getent passwd alice || echo "Účet není k dispozici"
id Alice
pgrep -a -u "$uid"
test -e "$home" && sudo ls -ld "$home" || echo "Chybí osobní složka"
sudo find /home /srv /var/www -xdev -uid "$uid" -ls
To by mělo znamenat, že přihlašovací jméno již neexistuje. Pokud soubory zůstanou se starým UID, rozhodněte se složku po složce, zda je chcete archivovat, přeřadit nebo smazat. Nepoužívejte chown -R globální, aniž by znali roli dat.
Nakonec před smazáním zkontrolujte skupiny, konfigurace systemd, klíče SSH zkopírované jinam a naplánované úlohy. UID by mohl v budoucnu znovu použít nový účet: ponechání osiřelých souborů bez adresy vytváří problém s oprávněními, který je obtížné odhalit.