Vyhledávání na webu

Jak odstranit uživatelské účty pomocí domovského adresáře v systému Linux


V tomto tutoriálu vás provedu kroky, které můžete použít k odstranění uživatelského účtu spolu s jeho domovským adresářem v systému Linux.

Chcete-li se dozvědět, jak vytvářet uživatelské účty a spravovat je v systémech Linux, přečtěte si následující články z odkazů níže:

  1. 15 Příklady příkazů „useradd“ pro správu uživatelských účtů v systému Linux
  2. 15 Příklady příkazů „usermod“ pro změnu/úpravu názvů uživatelských účtů v systému Linux
  3. Jak spravovat uživatele a skupiny pomocí oprávnění k souborům v systému Linux

Jako Správce systému v Linuxu možná budete muset odebrat uživatelský účet po určité době, kdy může být uživatelský účet tak dlouho nečinný, nebo může uživatel opustit organizaci nebo společnost nebo z jiných důvodů.

Při odstraňování uživatelských účtů v systému Linux je také důležité odstranit jejich domovský adresář, abyste uvolnili místo na úložných zařízeních pro nové uživatele systému nebo jiné služby.

Smazání/odstranění uživatelského účtu s jeho/její domovským adresářem

1. Pro účely demonstrace nejprve začnu vytvořením dvou uživatelských účtů v mém systému, kterými jsou uživatel tecmint a uživatel linuxsay s jejich domovskými adresáři. /home/tecmint a /home/linusay pomocí příkazu adduser.

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay

Z výše uvedeného snímku obrazovky jsem použil příkaz adduser k vytvoření uživatelských účtů v systému Linux. Můžete také použít příkaz useradd, oba jsou stejné a dělají stejnou práci.

2. Pojďme nyní dále, abychom viděli, jak odstranit nebo odebrat uživatelské účty v Linuxu pomocí deluser (pro Debian a jeho deriváty) a userdel ( Pro systémy založené na RedHat/CentOS).

Direktivy v konfiguračním souboru pro příkazy deluser a userdel určují, jak to bude zpracovávat všechny uživatelské soubory a adresář, když příkaz spustíte.

Podívejme se na konfigurační soubor pro příkaz deluser, který je /etc/deluser.conf na derivátech Debianu, jako je Ubuntu, Kali, Mint a pro RHEL/CentOS/Fedora uživatelé si můžete prohlédnout soubory /etc/login.defs.

Hodnoty v této konfiguraci jsou výchozí a lze je změnit podle vašich potřeb.

vi /etc/deluser.conf         [On Debian and its derivatives]
vi /etc/login.defs           [On RedHat/CentOS based systems]

3. Chcete-li odstranit uživatele s domovským adresářem, můžete použít pokročilý způsob podle následujících kroků na vašem počítači se serverem Linux. Když jsou uživatelé přihlášeni k serveru, používají služby a spouštějí různé procesy. Je důležité si uvědomit, že uživatele lze efektivně odstranit pouze tehdy, když není přihlášen k serveru.

Uzamknout uživatelské účty v Linuxu

Začněte uzamčením hesla uživatelského účtu, aby uživatel neměl přístup do systému. To zabrání uživateli spouštět procesy v systému.

Příkaz passwd včetně možnosti –lock vám toho může pomoci:

# passwd --lock tecmint

Locking password for user tecmint.
passwd: Success

Najít a zabít všechny běžící procesy uživatele

Dále zjistěte všechny běžící procesy uživatelského účtu a zrušte je určením PID (ID procesů) procesů vlastněných uživatelem pomocí:

# pgrep -u tecmint

1947
1959
2091
2094
2095
2168
2175
2179
2183
2188
2190
2202
2207
2212
2214

Poté můžete vypsat procesy mezi uživatelské jméno, PID, PPID (ID rodičovského procesu), použitý terminál, stav procesu, cestu příkazu v úplném formátu formátování pomocí následujícího příkazu, jak je znázorněno:

# 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
....

Jakmile najdete všechny běžící procesy uživatele, můžete použít příkaz killall k ukončení těchto běžících procesů, jak je znázorněno.

killall -9 -u tecmint

-9 je číslo signálu pro signál SIGKILL nebo použijte -KILL místo -9 a -u definuje uživatelské jméno.

Poznámka: V posledních vydáních verzí RedHat/CentOS 7.x a Fedora 21+ se zobrazí chybová zpráva jako:

-bash: killall: command not found

Chcete-li takovou chybu opravit, musíte nainstalovat balíček psmisc, jak je znázorněno:

yum install psmisc       [On RedHat/CentOS 7.x]
dnf install psmisc       [On Fedora 21+ versions]

Před smazáním zálohujte uživatelská data

Dále můžete zálohovat soubory uživatelů, to může být volitelné, ale doporučuje se to pro budoucí použití, když nastane potřeba zkontrolovat detaily uživatelského účtu a soubory.

Použil jsem nástroje tar k vytvoření zálohy domovského adresáře uživatelů následovně:

tar jcvf /user-backups/tecmint-home-directory-backup.tar.bz2 /home/tecmint

Smazat/odebrat uživatelský účet a soubory

Nyní můžete bezpečně odebrat uživatele spolu s jeho domovským adresářem, k odstranění všech uživatelských souborů v systému použijte volbu --remove-all-files v příkazu níže:

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]

souhrn

To vše souvisí s odstraněním uživatele a jeho domovského adresáře ze systému Linux. Domnívám se, že návod lze snadno sledovat, ale můžete vyjádřit své obavy nebo přidat další nápad zanecháním komentáře.