GNU/Linux >> Znalost Linux >  >> Linux

Správa uživatelů Linuxu a skupin Linuxu

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.


Linux
  1. Spravujte domovské adresáře uživatelů Linuxu pomocí systemd-homed

  2. Co je uživatel Linuxu?

  3. Jak najít všechny uživatele Sudo v Linuxu

  1. Jak spravovat oprávnění Linuxu pro uživatele, skupiny a další

  2. Uživatelé a skupiny

  3. Seznam uživatelů v Linuxu – Nejlepší metoda

  1. Jak vytvořit více uživatelských účtů v Linuxu

  2. Jak spravovat uživatele pomocí useradd v linuxu

  3. Jak pracovat s uživateli a skupinami v Linuxu