Linux, jak všichni víme, je operační systém pro více uživatelů. Pokud máte na počítači nebo serveru více uživatelů, můžete snadno spravovat více uživatelských účtů Linuxu a každému účtu poskytnout oprávnění.
V tomto článku se dozvíte –
- Jak spravovat uživatele a skupiny v systému Linux
- Vytvořte si nový uživatelský účet v systému Linux
- Přidat uživatele do skupiny v systému Linux
- Vytvořte skupinu uživatelů v systému Linux
- Odeberte skupinu uživatelů v systému Linux
Správa uživatelů systému Linux
Než však probereme, jak spravovat uživatele Linuxu a skupiny Linuxu, dovolte mi vysvětlit, proč je z hlediska zabezpečení životně důležitý samostatný uživatelský účet. Mnoho uživatelů začíná používat účet root při prvním spuštění linuxového serveru, což se nedoporučuje.
Není dobrý nápad provádět každodenní operace serveru pomocí účtu root. Uživatel root je účet superuživatele. Přihlášení zaručuje, že uživatel alespoň jednou spustí nesprávný příkaz a uživatel root to udělá, většinou aniž by žádal o potvrzení. Když se přihlásíte jako uživatel bez oprávnění root, uživatel má omezený přístup k systému a je méně pravděpodobné, že udělá něco špatného.
Za druhé, přidávání uživatelů do skupiny nebo skupin namísto správy jednotlivých uživatelů usnadňuje správu více uživatelů v systému Linux. Tím se dostáváme k tématu skupin uživatelů Linuxu. Pro některé uživatele stolních počítačů to může být únavné, ale pro systémové administrátory je to užitečná funkce.
Skupiny uživatelů Linuxu
Správa více uživatelů je pro správce systému obtížná, zvláště když uživatelé pocházejí z různých domén. Administrátor může chtít udělit jeden typ uživatelského přístupu k adresáři, zatímco ostatním typům uživatelů přístup k jiným adresářům v systému odepřít. Alternativně může správce chtít mít ve stejném adresáři více druhů uživatelů s různými oprávněními. V systému Linux je možné toho dosáhnout vytvořením skupin uživatelů systému Linux.
Předpokládejme, že vlastníme firmu na vývoj softwaru. Všechny adresáře projektu jsou uloženy na centrálním serveru. Chceme pouze poskytnout programátorům Pythonu přístup k adresáři Python, který obsahuje veškerý kód Pythonu.
Pro demonstraci vytvoříme nového uživatele s názvem sandy. Sandy je vývojář Pythonu, který vyžaduje přístup do adresáře kódu Python našeho serveru. Začněme tedy vytvořením jeho účtu.
Vytvořit nového uživatele v Linuxu
Vytvoření nového uživatele v Linuxu je velmi snadné z GUI.
Například používám Manjaro Linux (Deepin) a vytvoření nového uživatele je jako vytvoření nové poznámky v jakékoli aplikaci na psaní poznámek. Stačí zadat uživatelské jméno a heslo a je to.
Pokud ale potřebujete vytvořit nového uživatele na linuxovém serveru, zvládnou to následující dva příkazy –
- useradd
- Adduser
useradd – Tento příkaz je dostupný ve všech distribucích Linuxu. Přijímá různé argumenty pro vytvoření nového uživatele v Linuxu . Pokud je spuštěn bez argumentů, příkaz vytvoří uživatelský účet bez domovského adresáře, rozšíření prostředí atd.
Můžete však nastavit výchozí možnosti v /etc/default/useradd
takže pokaždé, když je vytvořen uživatel, příkaz přebírá výchozí hodnoty z /etc/default/useradd
automaticky.
adduser – Příkaz napsaný v perlu, který používá useradd
v backendu. Na rozdíl od useradd
, vyžaduje pouze uživatelské jméno a spustí nastavení v terminálu pro vytvoření uživatele. Je to jednodušší než useradd.
adduser
je k dispozici pouze v Ubuntu a dalších distribucích Linuxu založených na Debianu.
Jak používat useradd?
useradd -m sandy
Výše uvedený příkaz vytvoří uživatelský účet s domovským adresářem /home/sandy
. Nyní nastavte heslo pro uživatele.
sudo passwd sandy
A to je vše. Uživatel byl vytvořen. Pokud chcete pro uživatele vytvořit jiný domovský adresář, -d
k tomu slouží parametr.
sudo useradd -d /home/james sandy
Shell můžete také nastavit v příkazu useradd. Stačí použít -s
parametr.
sudo useradd -d /home/james -s /bin/bash sandy
Jak používat adduser?
Jak jsem uvedl výše, adduser
je mnohem jednodušší než useradd
. Vyžaduje pouze uživatelské jméno. adduser
klade otázky a nastavuje vstupní hodnoty jako hodnoty parametrů v příkazu useradd.
sudo adduser sandy
Pokud používáte Ubuntu nebo jiné distribuce založené na Debianu, pokračujte s adduser
příkaz. Tento příkaz byl vytvořen, aby zjednodušil proces vytváření uživatelů v systémech Linux.
Přidat skupinu uživatelů v systému Linux
Jak bylo uvedeno výše, správa uživatelů Linuxu je snazší, když je přidáte do jedné nebo skupin Linuxu.
Můžeme vytvořit skupinu nazvanou ‚python-programmers‘, přidat sandyho, našeho vývojáře pythonu, do této skupiny a poté mu udělit přístup do adresáře Python.
groupadd python-programmer
Přidat uživatele do skupiny v systému Linux
Nyní přidejte sandy do skupiny python-programmer.
sudo usermod -aG python-programmer sandy
Přidat skupinu do adresáře v Linuxu
Změňte skupinu adresáře Python, který existuje pod $HOME/Projects/Python
.
sudo chown -R :python-programmer $HOME/Projects/Python
Přidat oprávnění do adresáře
Nyní přidejte oprávnění pro čtení a zápis do adresáře pro uživatele skupiny.
sudo chmod -R g+w $HOME/Projects/Python
Odebrat oprávnění z adresáře
A nakonec zakažte ostatním uživatelům přístup k adresáři Python.
sudo chmod -R o-x Python
A práce je hotová! Nyní může k adresáři Python přistupovat uživatel root nebo jakýkoli uživatel ve skupině ‚python-programmers‘.
Ale je tu problém!
Výše uvedený postup odvede svou práci. Uživatelům python-programátorů to udělí přístup k adresáři Python, ale je tu problém. Výše uvedený přístup umožní přístup k adresáři Pythonu současně pouze jedné skupině uživatelů. Pokud chcete povolit některým dalším vývojářům přístup do adresáře Python, budete muset odebrat přístup předchozí skupině a nastavit novou skupinu jako vlastníka adresáře.
Chcete-li tento problém vyřešit a umožnit přístup více typům uživatelů současně, můžeme použít seznamy řízení přístupu.
Seznamy řízení přístupu
Řekněme, že máme skupinu auditorů v naší společnosti. Chceme umožnit auditorům skupiny, aby měli přístup ke čtení do adresáře Python, aniž by z něj odebírali jakoukoli jinou skupinu.
setfacl -m g:auditors:rx -R $HOME/Projects/Python
A to je vše. Nyní mají uživatelé skupiny python-programmers přístup pro čtení a zápis a uživatelé skupiny auditorů mají přístup pro čtení v adresáři Python. Pokud chcete auditorům povolit také přístup pro zápis, přidejte w ve výše uvedeném příkazu.
setfacl -m g:auditors:rwx -R $HOME/Projects/Python
Odebrat uživatele v Linuxu
Možná budete také muset odebrat uživatele v Linuxu. To lze provést pomocí userdel
příkaz.
userdel sandy
Upozornění Smazání uživatele je akce, kterou nelze obnovit. Před odebráním jakéhokoli uživatele si tedy nezapomeňte zálohovat důležité soubory a nastavení. Ve výchozím nastavení příkaz neodstraní domovský adresář uživatele.Upozornění
Před odebráním jakéhokoli uživatele v Linuxu se ujistěte, že uživatel nepoužívá žádný jiný proces. V opačném případě se zobrazí následující chyba –
userdel: The user sandy is being used by process 3861
Vypsat všechny procesy uživatele v Linuxu
ps -u sandy
Output -
PID TTY TIME CMD
4831 ? 00:00:00 systemd
4832 ? 00:00:00 (sd-pam)
4845 ? 00:00:00 gnome-keyring-d
4849 tty5 00:00:00 gdm-x-session
4851 tty5 00:00:10 Xorg
4856 ? 00:00:00 dbus-daemon
4860 tty5 00:00:00 gnome-session-b
4958 ? 00:00:00 ssh-agent
4961 ? 00:00:00 gvfsd
4966 ? 00:00:00 gvfsd-fuse
4975 ? 00:00:00 at-spi-bus-laun
4980 ? 00:00:00 dbus-daemon
4983 ? 00:00:00 at-spi2-registr
4997 ? 00:00:00 gnome-keyring-d
5012 tty5 00:00:21 gnome-shell
5023 ? 00:00:00 pulseaudio
5032 tty5 00:00:00 ibus-daemon
5034 ? 00:00:00 xdg-permission-
5042 tty5 00:00:00 ibus-dconf
5044 ? 00:00:00 gnome-shell-cal
5046 tty5 00:00:00 ibus-x11
5050 ? 00:00:00 ibus-portal
5057 ? 00:00:00 evolution-sourc
5066 ? 00:00:00 dconf-service
5073 ? 00:00:00 goa-daemon
5084 ? 00:00:00 goa-identity-se
5094 ? 00:00:00 gvfs-udisks2-vo
5099 ? 00:00:00 gvfs-gphoto2-vo
5103 ? 00:00:00 gvfs-goa-volume
5107 ? 00:00:00 gvfs-afc-volume
5112 ? 00:00:00 gvfs-mtp-volume
5116 tty5 00:00:00 gsd-power
5117 tty5 00:00:00 gsd-print-notif
5119 tty5 00:00:00 gsd-rfkill
5121 tty5 00:00:00 gsd-screensaver
5125 tty5 00:00:00 gsd-sharing
5128 tty5 00:00:00 gsd-smartcard
5130 tty5 00:00:00 gsd-xsettings
5131 tty5 00:00:00 gsd-wacom
5139 tty5 00:00:00 gsd-sound
5144 tty5 00:00:00 gsd-a11y-settin
5147 tty5 00:00:00 gsd-color
5150 tty5 00:00:00 gsd-clipboard
5154 tty5 00:00:00 gsd-housekeepin
5155 tty5 00:00:00 gsd-datetime
5160 tty5 00:00:00 gsd-media-keys
5162 tty5 00:00:00 gsd-keyboard
5164 tty5 00:00:00 gsd-mouse
5186 tty5 00:00:00 gsd-printer
5217 tty5 00:00:00 gsd-disk-utilit
5219 tty5 00:00:01 nautilus-deskto
5232 ? 00:00:00 gvfsd-trash
5254 ? 00:00:00 evolution-calen
5267 ? 00:00:00 evolution-calen
5282 ? 00:00:00 evolution-addre
5289 ? 00:00:00 evolution-addre
5310 tty5 00:00:00 ibus-engine-sim
5311 ? 00:00:00 gvfsd-metadata
5364 ? 00:00:00 gvfsd-network
5375 ? 00:00:00 gvfsd-dnssd
5443 tty5 00:00:00 update-notifier
5461 tty5 00:00:02 gnome-software
5563 ? 00:00:03 nautilus
5951 tty5 00:00:00 deja-dup-monito
Nebo existuje jiný příkaz pro výpis uživatelských procesů v Linuxu, pgrep
.
pgrep -u sandy
Output -
4831
4832
4845
4849
4851
4856
4860
4958
4961
4966
4975
4980
4983
4997
5012
5023
5032
5034
5042
Zabijte všechny procesy používané uživatelem
killall
příkaz zabije všechny procesy uživatelů.
killall -u sandy
Odebrání uživatele systému Linux
Po ukončení všech procesů uživatelů můžeme uživatele smazat.
userdel sandy
Jak jsem uvedl výše, ve výchozím nastavení příkaz neodstraní domovský adresář uživatele. Chcete-li také odebrat domovský adresář uživatele, přidejte –-r
argument k příkazu.
userdel -r sandy
Odebrat uživatele ze skupiny v Linuxu
Pokud se rozhodnete odebrat uživateli práva, odeberte uživatele ze skupiny.
sudo gpasswd -d sandy python-programmers
Pokud je uživatel členem skupiny, zobrazí se následující –
Removing user sandy from group python-programmers
Odebrání skupiny v Linuxu
Pokud chcete odebrat skupinu v Linuxu, použijte groupdel
příkaz.
groupdel username
Pokud je odstraňovaná skupina primární skupinou pro některého z uživatelů v systému, skupinu nelze odstranit. V takovém případě změňte primární skupinu daného uživatele.
Odstranit skupinu auditorů ze systému.
groupdel auditors
Závěr
To je vše. Správa uživatelů Linuxu a skupin Linuxu je jednoduchá. Jakmile se naučíte spravovat uživatele, budete moci uchovávat své soubory v bezpečí a soukromí, aniž byste se museli spoléhat na knihovnu nebo službu třetí strany.
Pokud si myslíte, že jsem něco v článku přehlédl, dejte mi prosím vědět v sekci komentářů níže. Tento článek budu každé tři měsíce aktualizovat o vaše návrhy (s vaším jménem).
Dejte mi prosím vědět, pokud nerozumíte některým pokynům v oblasti komentářů níže. Pokud jste nerd a objevili jste chybu v článku, dejte mi prosím vědět pomocí stránky Kontaktujte nás nebo se připojte k našemu serveru Discord.