HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

sudo finomhangolás

2022.08.21. 18:18 Travis.CG

A sudo parancs a legtöbb felhasználó számára egyet jelent a root-al. Egy kis kellemetlenségért cserébe (be kell gépelni, hogy sudo + jelszó) megkapjuk az isteni hatalmat a gép felett. Aki viszont veszi a fáradságot, az a beállításokkal nagyon részletesen előírhatja, hogy mennyit is kaphat valaki ebből a hatalomból.

A sudo beállításai az /etc/sudoers fájlban és az /etc/sudoers.d/ könyvtár fájljaiban található. Ez utóbbi azért alakult ki, mert a csomagkezelők előszeretettel írják felül a konfigurációs állományokat egy program frissítése során. A sudoers.d fájljai viszont értintetlenek maradnak.

A konfigurációs állomány szintakája nagyon egyszerű:

user host = (otheruser) cmd

A user lehet egy felhasználó neve, de akár egy csoport is, ha % jellel kezdődi. A host annak a gépnek a nevét jelenti, ahol a jogokat ki szeretnénk adni. Ez a megoldás lehetővé teszi, hogy egy sudoers fájlt több gép között is megoszthassunk. Az otheruser annak a felhasználónak a neve, akinek a nevében futni fog a parancs. Mint látható, nem muszáj root-nak lennie. Ha például az adatbázis felügyelet egy dedikált user nevében fut, akinek még home könyvtára sincs, akkor itt beállíthajuk, hogy a felhasználó ezen néven adatbázis műveleteket végezzen. A cmd a futtatni kívánt parancs. Mivel a sudo alapból nem ismeri a PATH-t, ezért célszerű teljes elérési utat megadni. A parancs esetén van egy érdekes dolog! Nevezetesen megadhatunk paramétereket is. Ezzel olyan érdekes helyzeteket hozhatunk létre, hogy a felhasználó nem tud tetszőleges paraméterekkel parancsot futtatni. Ha mondjuk egy felhasználónak csak egy szolgáltatás indítását és leállítását akarjuk engedélyezni, akkor a következő módon tehetjük meg:

dummy ALL = /sbin/systemctl start dummy.service, /sbin/systemctl stop dummy.service

Ebben az esetben a dummy felhasználó bármely gépen el tudja indítani a dummy szolgáltatást és le is tudja állítani. De az állapotát már nem tudja lekérdezni!

Ez így mind szép, de mi van, ha több host-ot, több felhasználót, netalántán több parancsot szeretnénk megadni? A konfiguráció során létrehozhatunk aliasokat. A Host_Alias a számítógépek neveit gyűjti egy azonosító alá. A User_Alias a felhasználókat. A Cmnd_Alias szerepe ezek alapján már egyértelműen beazonosítható.

Az aliasok felépítése is nagyon egyszerű:

User_Alias DB = adam, eve

Tehát a DB alias alatt adam és eve fog szerepelni. Az így definiált aliasokat utána használhatjuk a fenti struktúrában.

Azt is szabályozhatjuk, hány esetben kelljen beírni a jelszót. Ha a kiadni kívánt parancs előtt szerepel a NOPASSWD:, akkor a jelszó beírása nem kötelező, ami szkripteléskor jön jól.

Ez persze még mindig csak a jéghegy csúcsa. Nem említettem a reguláris kifejezéseket, környezeti változókat, stb. Aki még mélyebbre szeretne ásni a témában, itt teheti meg.

Szólj hozzá!

Címkék: rendszergazda

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr217910583

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása