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:
- Beolvassa és elemzi az /etc/sudoers fájlt, megkeresi a meghívó felhasználót és annak engedélyeit,
- 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),
- ezt követően a sudo létrehoz egy gyermekfolyamatot, amelyben meghívja a setuid() parancsot, hogy átváltson a célfelhasználóra
- 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:
- Akkor használatos, ha a rendszergazda nem bízik a sudo felhasználók biztonságos PATH környezeti változójában
- 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:
- mindig – mindig előadja a felhasználót.
- 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)
- 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.