Tento tutoriál vysvětluje, jak přidat, odstranit a udělit Sudo oprávnění pro uživatele v operačním systému Ubuntu Linux. Níže uvedené kroky jsou testovány ve verzi Ubuntu 20.04 LTS. Postup je však stejný pro ostatní distribuce založené na DEB. Než se pustíme do tématu, podívejme se, co je sudo a jeho výhody.
1. Co je sudo?
V operačních systémech Linux a Unix existuje speciální uživatel s názvem root . Uživatel root může v systému podobnému Unixu dělat cokoli. Používání uživatele root pro každodenní činnosti může být nebezpečné a nedoporučuje se. Jeden špatný příkaz může zničit celý systém! Zde se nachází "sudo" přichází na pomoc. Umožňuje oprávněným uživatelům provádět úlohy s oprávněními root, i když neznají heslo uživatele root. To je důvod, proč je důležité vytvořit běžného uživatele a přidat ho do skupiny uživatelů sudo, aby v případě potřeby mohl provádět administrativní úkoly. Tento uživatel tedy může při spouštění příkazů s předponou sudo fungovat jako běžný uživatel i jako administrátor.
2. Výhody sudo
- Heslo uživatele root nemusí být sdíleno s ostatními uživateli.
- Uživatelé nemusí znát heslo uživatele root, aby mohli provádět administrativní úkoly.
- Při provádění administrativní úlohy budou uživatelé vyzváni k zadání hesla sudo předtím, než dojde k jakýmkoli změnám v systému. Mělo by to uživatele přimět přemýšlet o důsledcích toho, co dělají.
- Administrátorská práva mohou být uživatelům snadno udělena a kdykoli odvolána, pokud již nebudou vyžadována.
- Některé distribuce Linuxu, například Ubuntu, ve výchozím nastavení zakazují uživatele root. Neexistuje tedy žádný způsob, jak spustit útoky hrubou silou na uživatele root. I kdyby to někdo zkusil, bylo by to zbytečné. Protože neexistuje žádné rootovské heslo k prolomení.
- Důležitější je, že relace sudo bude po krátké době ukončena. Pro případ, že byste nechali terminál otevřený po spuštění příkazů jako uživatel root s oprávněním sudo, autentizace automaticky vyprší. Ostatní uživatelé tedy nemohou provádět žádné další administrativní úkoly. Ve výchozím nastavení je heslo uloženo po dobu 15 minut v aktuální relaci. Poté musíte heslo zadat znovu.
- Sledujte aktivitu uživatelů sudo na příkazovém řádku. sudo přidá záznam příkazů spuštěných uživateli do /var/log/auth.log souboru . Pokud se vyskytne nějaký problém, můžete se na tyto příkazy podívat a pokusit se zjistit, co se pokazilo.
Toto je několik výhod uživatele sudo. Nyní pojďme dále a uvidíme, jak přidat, odstranit a udělit oprávnění Sudo uživatelům v Linuxu
3. Přidejte, odstraňte a udělte uživatelům v Ubuntu oprávnění Sudo
Nejprve vytvoříme běžného uživatele.
3.1. Přidat nového uživatele v Linuxu
Nejprve vytvořte běžného uživatele, například "ubuntuserver" . Chcete-li to provést, spusťte:
$ sudo adduser ubuntuserver
Ukázkový výstup:
Adding user `ubuntuserver' ... Adding new group `ubuntuserver' (1001) ... Adding new user `ubuntuserver' (1001) with group `ubuntuserver' ... Creating home directory `/home/ubuntuserver' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ubuntuserver Enter the new value, or press ENTER for the default Full Name []: ubuntu 20.04 server Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
Byl vytvořen nový uživatel s názvem "ubuntuserver".
3.2. Udělte uživatelům v Linuxu privilegia Sudo
V některých systémech Linux, například Arch Linux, musíte nainstalovat "sudo" balíčku před vytvořením nového uživatele sudo.
# pacman -S sudo
V Debianu:
# apt install sudo
Na serveru a desktopech Ubuntu je ve výchozím nastavení nainstalováno „sudo“.
Nyní přidejte nově vytvořeného uživatele do skupiny sudo pomocí následujícího příkazu:
$ sudo adduser ubuntuserver sudo
Ukázkový výstup:
Adding user `ubuntuserver' to group `sudo' ... Adding user ubuntuserver to group sudo Done.
Uživateli s názvem "ubuntuserver" byla udělena oprávnění sudo.
Můžete také následující příkaz přidat uživatele do skupiny sudo.
$ sudo usermod -aG sudo ubuntuserver
Chcete-li ověřit, zda je uživatel ve skupině sudo, spusťte:
$ sudo -l -U ubuntuserver
Ukázkový výstup:
Matching Defaults entries for ubuntuserver on ostechnix: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User ubuntuserver may run the following commands on ostechnix: (ALL : ALL) ALL
Zde je "(ALL :ALL) ALL" řádek znamená, že uživatel má neomezená oprávnění a může spouštět jakýkoli příkaz v systému. V tomto případě je uživatel "ubuntuserver" ve skupině uživatelů sudo a nyní může provádět nejrůznější administrativní úkoly.
Pokud otevřete obsah sudoers soubor;
$ sudo cat /etc/sudoers
Uvidíte několik řádků jako níže.
[...] # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
Jak můžete vidět na výše uvedeném výstupu, všichni členové skupiny sudo mohou provést jakýkoli příkaz.
- První VŠECHNY jsou povoleni uživatelé.
- Druhým VŠEM jsou hostitelé. Pokud distribuujete stejný soubor "sudoers" na mnoho hostitelských počítačů, uživatel může provádět administrativní příkazy na všech hostitelích.
- Třetí je uživatel, když spouštíte příkaz.
- Poslední jsou povolené příkazy.
3.3. Ověřte uživatele Sudo
Chcete-li ověřit, zda je uživatel schopen provádět administrativní úkoly, odhlaste se a znovu se přihlaste jako nový uživatel.
Případně se můžete okamžitě přihlásit jako jiný uživatel s oprávněním sudo, aniž byste se museli odhlašovat z aktuální relace, jak je uvedeno níže.
$ sudo -i -u <username>
Příklad:
$ sudo -i -u ubuntuserver
Nyní spusťte libovolné příkazy s předponou "sudo", jak je uvedeno níže.
$ sudo apt update
3.4. Smazat uživatele Sudo
Oprávnění sudo můžete uživateli odebrat, aniž byste jej museli zcela odstranit. Když to děláte v systémech Ubuntu, musíte být opatrní. Neodstraňujte skutečného správce ze skupiny "sudo". V systému by měl být alespoň jeden uživatel sudo.
Chcete-li uživateli zrušit oprávnění sudo, příkaz by byl:
$ sudo deluser ubuntuserver sudo
Výše uvedený příkaz odstraní uživatele s názvem "ubuntuserver" ze skupiny "sudo".
Ukázkový výstup:
Removing user `ubuntuserver' from group `sudo' ... Done.
Upozorňujeme, že tento příkaz odstraní pouze uživatele 'ubuntuserver' ze skupiny sudo, ale neodstraní uživatele trvale ze systému.
Případně spusťte následující příkaz a odeberte uživateli oprávnění sudo:
$ sudo gpasswd -d ubuntuserver sudo
Nyní se uživatel stává běžným uživatelem a nemůže provádět žádné administrativní úkoly s oprávněním sudo.
Chcete-li ověřit, zda byl uživatel skutečně odstraněn ze skupiny "sudo", spusťte:
$ sudo -l -U ubuntuserver
Ukázkový výstup:
User ubuntuserver is not allowed to run sudo on ostechnix.
Uživateli bylo odebráno oprávnění sudo.
3.5. Trvale odstranit uživatele
Ve výše uvedeném kroku jsme pouze odebrali uživatele ze skupiny "sudo". Ale uživatel v systému stále existuje. Chcete-li uživatele zcela odebrat ze systému Linux, přihlaste se jako uživatel root nebo sudo a spusťte:
$ sudo deluser <username>
Příklad:
$ sudo deluser ubuntuserver
Pokud chcete odebrat uživatele spolu s jeho domovským adresářem a zařazováním pošty, spusťte:
$ sudo deluser --remove-home ubuntuserver
Ukázkový výstup:
Looking for files to backup/remove ... Removing files ... Removing user `ubuntuserver' ... Warning: group `ubuntuserver' has no more members. Done.
Další podrobnosti naleznete na manuálových stránkách.
$ man adduser
$ man deluser
$ man sudo
Tato příručka je k dispozici také pro systémy Alpine Linux, Arch Linux a CentOS. Podívejte se na následující průvodce, jak přidat, odstranit a udělit oprávnění sudo uživatelům v distribucích Arch Linux a CentOS Linux.
- Přidávání, odstraňování a udělování oprávnění sudo uživatelům v systému Alpine Linux
- Přidat, odstranit a udělit uživatelům v Arch Linuxu oprávnění Sudo
- Přidávání, odstraňování a udělování oprávnění sudo uživatelům v systému CentOS
Doufám, že to pomůže.
Související čtení:
- Jak změnit časový limit hesla Sudo v systému Linux
- Jak změnit výchozí soubor protokolu sudo v systému Linux
- Jak obnovit oprávnění uživatele Sudo
- Jak najít všechny uživatele Sudo ve vašem systému Linux
- Jak spouštět konkrétní příkazy bez hesla Sudo v systému Linux
Vybraný obrázek od mohameda Hassana z Pixabay .