Tutoriel Linux

Userdel v Linuxu: smazání účtu bez smazání nesprávného domovského adresáře

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

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.

Tux kontroluje účet a osobní složku, které mají být smazány, pomocí příkazu userdel v Linuxu
Před použitím příkazu userdel zkontrolujte, který účet a osobní složka budou smazány.

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.

sudo apt update && sudo apt upgrade