Weboldal keresés

10 hasznos Sudoers konfiguráció a „sudo” beállításához Linuxban


Linuxban és más Unix-szerű operációs rendszerekben csak a root felhasználó futtathat minden parancsot, és hajthat végre bizonyos kritikus műveleteket a rendszeren, mint például a telepítés és frissítés, a csomagok eltávolítása, a felhasználók és csoportok létrehozása, a fontos rendszer módosítása. konfigurációs fájlok és így tovább.

Azonban a rendszergazda, aki felvállalja a root felhasználó szerepét, a sudo parancs és néhány konfiguráció segítségével engedélyezheti más normál rendszerfelhasználóknak, hogy futtassanak néhány parancsot, valamint számos létfontosságú rendszerműveletet hajtsanak végre, beleértve a fent említetteket is.

Alternatív megoldásként a rendszergazda megoszthatja a root felhasználó jelszavát (ami nem ajánlott módszer), így a normál rendszerfelhasználók hozzáférhetnek a root felhasználói fiókhoz a su paranccsal.

A sudo lehetővé teszi az engedélyezett felhasználók számára, hogy rootként (vagy más felhasználóként) parancsot hajtsanak végre a biztonsági házirendben meghatározottak szerint:

  1. Beolvassa és elemzi az /etc/sudoers fájlt, megkeresi a meghívó felhasználót és annak engedélyeit,
  2. majd jelszót kér a hívó felhasználótól (általában a felhasználó jelszava, de lehet a célfelhasználó jelszava is. Vagy átugorható NOPASSWD címkével),
  3. ezt követően a sudo létrehoz egy gyermekfolyamatot, amelyben meghívja a setuid() parancsot, hogy átváltson a célfelhasználóra
  4. ezután végrehajt egy shellt vagy a fenti gyermekfolyamatban argumentumként megadott parancsot.

Az alábbiakban tíz /etc/sudoers fájlkonfiguráció található a sudo parancs viselkedésének módosításához az Alapértelmezett bejegyzések használatával.

sudo cat /etc/sudoers
#
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

Az alapértelmezett bejegyzések típusai

Defaults                parameter,   parameter_list     #affect all users on any host
Defaults@Host_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

Ennek az útmutatónak a hatókörét tekintve az alábbi űrlapokon az Alapértelmezések első típusát nullázzuk le. A paraméterek lehetnek zászlók, egész számok, karakterláncok vagy listák.

Megjegyzendő, hogy a jelzők implicit logikai értékek, és a '!' operátorral kikapcsolhatók, a listáknak pedig két további hozzárendelési operátora van, a += (add to list) és -= (eltávolítás a listáról).

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

1. Állítson be egy biztonságos PATH-t

Ez az elérési út minden sudo-val futtatott parancshoz, ennek két fontossága van:

  1. Akkor használatos, ha a rendszergazda nem bízik a sudo felhasználók biztonságos PATH környezeti változójában
  2. A „gyökér elérési út” és a „felhasználói elérési út” elkülönítéséhez ez a beállítás csak az mentességi_csoport által meghatározott felhasználókat nem érinti.

A beállításhoz adja hozzá a következő sort:

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

2. Engedélyezze a sudo-t a TTY felhasználói bejelentkezési munkameneten

Ha engedélyezni szeretné a sudo meghívását valódi tty-ről, de nem olyan metódusokon keresztül, mint a cron vagy a cgi-bin szkriptek, adja hozzá a következő sort:

Defaults  requiretty   

3. Futtassa a Sudo parancsot egy pty használatával

Néhányszor a támadók rosszindulatú programot (például vírust vagy rosszindulatú programot) futtathatnak a sudo használatával, amely ismét egy háttérfolyamatot indít el, amely akkor is a felhasználó termináleszközén marad, amikor a fő program végrehajtása befejeződött.

Az ilyen helyzet elkerülése érdekében beállíthatja a sudo-t úgy, hogy más parancsokat csak psuedo-pty-ből futtasson a use_pty paraméter használatával, függetlenül attól, hogy az I/O naplózás be van-e kapcsolva vagy sem. következik:

Defaults  use_pty

4. Hozzon létre egy Sudo naplófájlt

Alapértelmezés szerint a sudo a syslog(3)-on keresztül jelentkezik. Egyéni naplófájl megadásához azonban használja a logfile paramétert, például:

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

A gazdagépnév és a négyjegyű évszám naplózásához az egyéni naplófájlban használja a log_host és a log_year paramétereket az alábbiak szerint:

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

Az alábbiakban egy példa egy egyéni sudo naplófájlra:

5. A Sudo parancs bemeneti/kimeneti naplózása

A log_input és a log_output paraméterek lehetővé teszik a sudo számára, hogy parancsot futtasson pszeudo-tty-ben, és naplózza a képernyőre küldött összes felhasználói bemenetet és kimenetet.

Az alapértelmezett I/O naplókönyvtár a /var/log/sudo-io, és ha van munkamenet sorszáma, akkor azt ebben a könyvtárban tárolja. Egyéni könyvtárat az iolog_dir paraméterrel adhat meg.

Defaults   log_input, log_output

Vannak olyan menekülési szekvenciák, amelyek támogatottak, például a %{seq}, amely monoton növekvő 36-os bázissorszámra bővül, például 000001, ahol minden két számjegyet egy új könyvtár létrehozására használnak fel, pl. 00/00/01 az alábbi példa szerint:

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

A könyvtár többi fájlját a cat paranccsal tekintheti meg.

6. Előadás Sudo felhasználók

A sudo felhasználóknak a rendszeren belüli jelszóhasználatról szóló előadásához használja a lecture paramétert az alábbiak szerint.

3 lehetséges értéke van:

  1. mindig – mindig előadja a felhasználót.
  2. egyszer – csak akkor oktasson egy felhasználót, amikor először hajtja végre a sudo parancsot (ezt akkor használja, ha nincs megadva érték)
  3. soha – soha ne tanítsa a felhasználót.
 
Defaults  lecture="always"

Ezenkívül beállíthat egy egyéni előadásfájlt a lecture_file paraméterrel, írja be a megfelelő üzenetet a fájlba:

Defaults  lecture_file="/path/to/file"

7. Egyéni üzenet megjelenítése, ha rossz sudo jelszót ír be

Ha egy felhasználó rossz jelszót ír be, egy bizonyos üzenet jelenik meg a parancssorban. Az alapértelmezett üzenet a „bocsánat, próbálkozzon újra”, az üzenetet a következőképpen módosíthatja a badpass_message paraméterrel:

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

8. Növelje a sudo jelszópróbálkozási korlátot

A passwd_tries paraméter annak meghatározására szolgál, hogy a felhasználó hányszor próbálkozhat jelszó megadásával.

Az alapértelmezett érték 3:

Defaults   passwd_tries=5 

A jelszó időkorlátjának beállításához (alapértelmezett 5 perc) a passwd_timeout paraméterrel, adja hozzá az alábbi sort:

Defaults   passwd_timeout=2

9. Hagyja, hogy a Sudo megsértse Önt, ha rossz jelszót ad meg

Ha egy felhasználó rossz jelszót ír be, a sudo sértéseket jelenít meg a terminálon az inzultációk paraméterrel. Ezzel automatikusan kikapcsolja a badpass_message paramétert.

Defaults  insults 

További információ: Hagyja, hogy a Sudo megsértse Önt, ha helytelen jelszót ad meg

10. További Sudo-konfigurációk

Ezenkívül további sudo parancskonfigurációkat is megtudhat, ha elolvassa: Különbség a su és a sudo között, valamint a Sudo konfigurálása Linux rendszerben.

Ez az! Más hasznos sudo parancskonfigurációkat vagy trükköket és tippeket oszthat meg a Linux-felhasználókkal az alábbi megjegyzés szakaszban.