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 níže uvedených odkazů:
- 15 příkladů příkazů „useradd“ pro správu uživatelských účtů v systému Linux
- 15 příkladů příkazů „usermod“ pro změnu/úpravu názvů uživatelských účtů v systému Linux
- 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 uživatel může 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ým je uživatel tecmint a uživatel linuxsay s jejich domovskými adresáři /home/tecmint a /home/linusay respektive pomocí adduser příkaz.
# adduser tecmint # passwd tecmint # adduser linuxsay # passwd linuxsay
Z výše uvedeného snímku obrazovky jsem použil adduser příkaz k vytvoření uživatelských účtů v systému Linux. Můžete také použít 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) příkaz.
Direktivy v konfiguračním souboru pro deluser a userdel příkazy 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 deluser příkaz, kterým je /etc/deluser.conf
na derivátech Debianu, jako je Ubuntu, Kali, Mint a pro uživatele RHEL/CentOS/Fedora, si můžete prohlédnout /etc/login.defs
soubory.
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ě smazat pouze tehdy, když není přihlášen k serveru.
Zamknout uživatelské účty v systému Linux
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.
heslo příkaz včetně –lock Tato možnost vám může pomoci dosáhnout:
# 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 pomocí následujícího příkazu vypsat seznam procesů jako 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:
# 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 pomocí příkazu killall tyto běžící procesy zabít, jak je znázorněno.
# killall -9 -u tecmint
-9 je číslo signálu pro SIGKILL signál 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:
-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]
Zálohujte uživatelská data před smazáním
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ž bude potřeba zkontrolovat podrobnosti o uživatelském úč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 --remove-all-files
možnost v příkazu níže:
# deluser --remove-home tecmint [On Debian and its derivatives] # userdel --remove tecmint [On RedHat/CentOS based systems]
Shrnutí
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.