GNU/Linux >> Znalost Linux >  >> Linux

10 užitečných konfigurací Sudoers pro nastavení „sudo“ v Linuxu

V Linuxu a dalších unixových operačních systémech pouze root uživatel může spouštět všechny příkazy a provádět určité kritické operace v systému, jako je instalace a aktualizace, odebírání balíčků, vytváření uživatelů a skupin, úprava důležitých konfiguračních souborů systému a tak dále.

Nicméně správce systému, který převezme roli uživatele root, může povolit ostatním normálním uživatelům systému pomocí příkazu sudo a několika konfigurací spouštět některé příkazy a také provádět řadu důležitých systémových operací, včetně těch, které jsou uvedeny výše.

Alternativně může správce systému sdílet heslo uživatele root (což není doporučená metoda), aby normální uživatelé systému měli přístup k účtu uživatele root prostřednictvím su příkaz.

sudo umožňuje povolenému uživateli provést příkaz jako root (nebo jiný uživatel), jak je uvedeno v bezpečnostní politice:

  1. Čte a analyzuje /etc/sudoers , vyhledá volajícího uživatele a jeho oprávnění,
  2. pak vyzve volajícího uživatele k zadání hesla (obvykle heslo uživatele, ale může to být i heslo cílového uživatele. Nebo jej lze přeskočit pomocí značky NOPASSWD),
  3. poté sudo vytvoří podřízený proces, ve kterém zavolá setuid() přepnout na cílového uživatele
  4. následně spustí shell nebo příkaz zadaný jako argumenty v podřízeném procesu výše.

Níže je deset /etc/sudoers konfigurace souborů pro úpravu chování sudo pomocí Výchozích záznamy.

$ sudo cat /etc/sudoers
/etc/sudoers Soubor
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults	logfile="/var/log/sudo.log"
Defaults	lecture="always"
Defaults	badpass_message="Password is wrong, please try again"
Defaults	passwd_tries=5
Defaults	insults
Defaults	log_input,log_output

Typy výchozích položek

Defaults                parameter,   parameter_list     #affect all users on any host
[email protected]_List      parameter,   parameter_list     #affects all users on a specific host
Defaults:User_List      parameter,   parameter_list     #affects a specific user
Defaults!Cmnd_List      parameter,   parameter_list     #affects  a specific command 
Defaults>Runas_List     parameter,   parameter_list     #affects commands being run as a specific user

V rámci této příručky se vynulujeme na první typ Výchozích ve formulářích níže. Parametry mohou být příznaky, celočíselné hodnoty, řetězce nebo seznamy.

Měli byste si uvědomit, že příznaky jsou implicitně booleovské a lze je vypnout pomocí '!' operátor a seznamy mají dva další operátory přiřazení, += (přidat do seznamu) a -= (odstranit ze seznamu).

Defaults     parameter
OR
Defaults     parameter=value
OR
Defaults     parameter -=value   
Defaults     parameter +=value  
OR
Defaults     !parameter       

1. Nastavte zabezpečenou cestu

Toto je cesta používaná pro každý příkaz spuštěný pomocí sudo, má dvě důležitosti:

  1. Používá se, když správce systému nedůvěřuje uživatelům sudo, že mají zabezpečenou proměnnou prostředí PATH
  2. Chcete-li oddělit „kořenovou cestu“ a „cestu uživatele“, pouze uživatelé definovaní pomocí exempt_group nejsou tímto nastavením ovlivněny.

Chcete-li jej nastavit, přidejte řádek:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

2. Povolit sudo v relaci přihlášení uživatele TTY

Chcete-li povolit vyvolání sudo ze skutečného tty ale ne pomocí metod, jako je cron nebo cgi-bin skripty, přidejte řádek:

Defaults  requiretty   

3. Spusťte příkaz Sudo pomocí pty

Útočníci mohou několikrát spustit škodlivý program (jako je virus nebo malware) pomocí sudo, což by opět rozdělilo proces na pozadí, který zůstává na koncovém zařízení uživatele, i když hlavní program skončí.

Chcete-li se takovému scénáři vyhnout, můžete nakonfigurovat sudo tak, aby spouštělo jiné příkazy pouze z psuedo-pty pomocí use_pty parametr, zda je protokolování I/O zapnuto či nikoli následovně:

Defaults  use_pty

4. Vytvořte soubor protokolu sudo

Ve výchozím nastavení se sudo přihlašuje přes syslog(3). Chcete-li však zadat vlastní soubor protokolu, použijte parametr logfile takto:

Defaults  logfile="/var/log/sudo.log"

Chcete-li zaznamenat název hostitele a čtyřmístný rok do vlastního souboru protokolu, použijte log_host a log_year parametry následovně:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

Níže je uveden příklad vlastního souboru protokolu sudo:

5. Log Sudo Command Input/Output

log_input a log_output parametry umožňují sudo spustit příkaz v pseudo-tty a zaznamenat všechny uživatelské vstupy a všechny výstupy odeslané na obrazovku.

Výchozí adresář protokolu I/O je /var/log/sudo-io a pokud existuje pořadové číslo relace, je uloženo v tomto adresáři. Pomocí iolog_dir můžete zadat vlastní adresář parametr.

Defaults   log_input, log_output

Některé escape sekvence jsou podporovány, například %{seq} které se rozšiřuje na monotónně se zvyšující sekvenční číslo 36, jako je 000001, kde jsou každé dvě číslice použity k vytvoření nového adresáře, např. 00/00/01 jako v příkladu níže:

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log

Zbytek souborů v tomto adresáři můžete zobrazit pomocí příkazu cat.

6. Přednáška Sudo Users

Chcete-li poučit uživatele sudo o používání hesla v systému, použijte přednášku parametr, jak je uvedeno níže.

Má 3 možné hodnoty:

  1. vždy – vždy poučit uživatele.
  2. jednou – pouze poučit uživatele při prvním spuštění příkazu sudo (toto se používá, pokud není zadána žádná hodnota)
  3. nikdy – nikdy nepoučujte uživatele.
 
Defaults  lecture="always"

Navíc si můžete nastavit vlastní soubor přednášky pomocí souboru_lekce zadejte příslušnou zprávu do souboru:

Defaults  lecture_file="/path/to/file"

7. Zobrazit vlastní zprávu, když zadáte nesprávné heslo sudo

Když uživatel zadá špatné heslo, zobrazí se na příkazovém řádku určitá zpráva. Výchozí zpráva je „omlouváme se, zkuste to znovu “, můžete zprávu upravit pomocí badpass_message parametr takto:

Defaults  badpass_message="Password is wrong, please try again"

8. Zvýšit limit pokusů o heslo sudo

Parametr passwd_tries se používá k určení, kolikrát se může uživatel pokusit zadat heslo.

Výchozí hodnota je 3:

Defaults   passwd_tries=5 

Chcete-li nastavit časový limit hesla (výchozí je 5 minut) pomocí passwd_timeout parametr, přidejte řádek níže:

Defaults   passwd_timeout=2

9. Ať vás Sudo urazí, když zadáte špatné heslo

V případě, že uživatel zadá špatné heslo, sudo zobrazí na terminálu urážky s parametrem urážky. Tím se automaticky vypne zpráva badpass_message parametr.

Defaults  insults 

Další informace :Ať vás Sudo urazí, když zadáte nesprávné heslo

10. Další informace o konfiguraci sudo

Kromě toho se můžete dozvědět více sudo konfigurace příkazů přečtením:Rozdíl mezi su a sudo a Jak nakonfigurovat sudo v Linuxu.

A je to! Další užitečné konfigurace příkazů sudo nebo triky a tipy můžete sdílet s uživateli Linuxu prostřednictvím sekce komentářů níže.


Linux
  1. Spusťte kontejnery na Linuxu bez sudo v Podman

  2. 20 základních příkazů Linuxu pro každého uživatele

  3. Jak nastavit oprávnění Sudo pro uživatele v Linuxu

  1. 11 nejlepších CAD softwaru pro Linux

  2. Jak vytvořit uživatele Sudo v Rocky Linux 8

  3. PYTHONPATH nefunguje pro sudo na GNU/Linux (funguje pro root)

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

  2. Instalace a nastavení Grafana v linuxu

  3. Windows UAC vs. Linux sudo