suders.d - nem értem

Fórumok

Az én rendszerem nem használ sudo parancs szisztémát. Nem mintha most szeretnék váltani. root felhasználó létezik. Ennek ellenére ha szükség van rá, szerkeszthető a sudoers fájl a visudo-val hogy akár a felhasználó kezébe adjunk root jogokkal futó programnak a végrehajtását. Akkor most van a gépemen SUDO vagy nincs? 

Szükségem lenne a felhasználó kezébe adni az rtcwake parancsot. Manuálisan megszerkesztve a sudoers fájlt ez megoldható. No de ott van az /etc/sudoers.d mappa.
Nem lenne egyszerűbb abba beletenni a kívánt dolgot?

Létrehoztam egy új csoportot, mely eddig nem létezett. kikapcs lett a neve. usermod -G kikapcs felhasználó 
Erre azért volt szükség mert a felhasználó nevében szkript fog futni és a szkriptnek ki kell kapcsolni a gépet ha úgy alakul akkor is, ha történetesen a felhasználó nincs is bejelentkezve. Működik.

Viszont a felhasználónak be kell tudnia állítani azt is, hogy a gép bekapcsoljon adott időben magától. Erre a feladatra használhatja az rtcwake parancsot. De jelenleg ezt csak a root tudja futtatni. Ez még BIOS-os gép.

Mint említettem a sudoersben ez beállítható. De egyszerűsíteném a dolgot. Létrehoztam az /etc/sudoers.d mappában egy 99-bekapcs,conf fájlt. Amiben ez van:

Defaults:felhasználó_neve !requiretty 
%kikapcs ALL = NOPASSWD: /usr/sbin/shutdown, /usr/sbin/rtcwake

De nem működik. Ez azért van mert nem sudo-s a rendszerem? Vagy ez nem is fog soha? Nem gond, csak szeretném megérteni. Amúgy ez Mageia LInux.
Ha ugyanezt beírom visudoval, akkor működik. Ráadásul a sudoers fájl végén ott van hogy #includedir /etc/sudoers.d (A # jel itt nem commentet takar.)
 

Hozzászólások

a sudoers.d azert van hogy a csomagtelepito oda rakhatja a sudo beallitasait, es nem a sima sudoers fajlban kell varazsolni. 

erre figyeltel? ez szerint a 99-bekapcs.conf nemjo fajlnev.

# This will cause sudo to read and parse any files in the /etc/sudoers.d
# directory that do not end in '~' or contain a '.' character.
 

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Mi az, hogy nem használ sudo parancs szisztémát? Ha beírod, hogy "sudo ls", akkor mi történik?

Az /etc/sudoers.d célja, hogy ne egy óriási konfigfájlod legyen, hanem szét tudd őket szedni. A sudo szépen berántja az itt lévő konfigfájlokat is.

Jól értem, hogy az rtcwake nem működik csak?

$ sudo ls

Bízunk benne, hogy megkapta a szokásos tudnivalókat a helyi
rendszergazdától. Általában a következő három dolog lényeges:

   #1) Tartsa tiszteletben mások személyiségi jogait.
   #2) Gondolkodjon gépelés előtt.
   #3) A nagy erő nagy felelősséggel jár.

[sudo] nextra jelszava:

Amúgy arra gondoltam hogy nekem nem kell minden parancsot sudo- val az elején megadni, hanem egyszer su, és root vagyok.

 

Lehetséges workaround (sudo nélkül):

A felhasználó meghatározott helyre letesz egy fájlt, amibe bele vannak írva azok a paraméterek, amik kellenek a kikapcsoláshoz.

Egy script leellenőrzi a fájl létezését, ha létezik beolvassa a tartalmát, és kiadja a megfelelő parancsot, majd törli a fájlt. Ez a script root-ként fut, és pl. a cron futtatja percenként.

Nem a legelegánsabb, de így nem kell semmilyen root jogot adni a usernek.

na ezzel lehet a legszebben root jogokat szerezni egy gepen. ha nem csak egy ottvan-a-fajl figyeles, esetleg tartalmazza ABC-t szintu a dolog, hanem direct parameter atadas akkor lehet szepeket muvelni...

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Mindent el lehet rontani, de ahonnan én jövök, ott szeretjük a rendszerek közti szeparált, jól definiált interface-eket, növelik a biztonságot (nem IT). Én nem azt mondtam, hogy futtassa a parancsot amit a fájlba írtak :D

Én eddig mindig meg tudtam oldani, hogy ne kelljen mezei user-nek root jogot adni. Engem a setuid-tól is kiráz a hideg, pedig nem olyan régen még zokszó nélkül használták itt-ott.

No és biztonsági szempontból hogy néz ki ez a megoldás? Van egy idegen kikapcs csoport, mely a felhasználóhoz van rendelve. A sudoers-ben meg ehhez a csoporthoz van rendelve a shutdown, és az rtcwake parancs.

Defaults:felhasználó_neve !requiretty (Ez ugye azért, hogyha a delikvens nincs bejelentkezve akkor is tudjon futni a szkript.)
%kikapcs ALL = NOPASSWD: /usr/sbin/shutdown, /usr/sbin/rtcwake

Az rtcwake azért kell, a felhasználó beállíthassa hogy mikor kapcsoljon be a gép.
A shutdown meg azért, mert ha végzett éjszaka a szkript akkor kapcsoljon ki a gép. Automatizálva van minden.

Így ugye csak azok kapnak root jogot a két parancsra akik tagjai az idegen csoportnak.S úgy gondolom hogy ez a csoport nem jellemző semmilyen rendszerben.

De közben elfelejtettem, hogy ebben az esetben a szkriptben sudo shutdown és sudo rtcwake parancsot kell alkalmazni. Működik is.