Hogyan futtathatok speciális sudo parancsokat jelszó nélkül?

189

Egy adott gépen gyakran kell futtatniasudo parancsokat néha. Rendben van a jelszó beírása asudo -ban az esetek többségében.

Mindazonáltal háromsudo parancs szeretnék futtatni jelszó beírása nélkül :

  • sudo reboot
  • sudo shutdown -r now
  • sudo shutdown -P now

Hogyan zárhatom ki ezeket a parancsokat a jelszóvédelemtől a (z)sudo?

kifejezésig?     
készlet Z9iT 03.07.2012 10:31
forrás

1 válasz

254

ANOPASSWD irányelv

használata

Használhatja aNOPASSWD directive-ot /etc/sudoers file .

Ha a felhasználó neveuser, és a gazdagép nevehost, hozzáadhatod ezeket a sorokat a/etc/sudoers -hoz:

user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot

Ez lehetővé teszi auser felhasználó számára, hogy futtassa a kívánt parancsokat ahost -on jelszó megadása nélkül. Az összes többi sudo ed parancs még mindig jelszót igényel.

Asudoers fájlban megadott parancsoknak teljesen minősítettnek kell lenniük (azaz a parancs futtatásának abszolút elérési útját használva) a %CO_kde% man oldal . A relatív útvonal biztosítása szintaktikai hibának tekinthető.

Ha a parancs befejeződik asudoers karakterrel, és egy könyvtárra mutat, akkor a felhasználó képes bármely parancsot futtatni a könyvtárban (de nem tartalmaz semmilyen alkönyvtárat). A következő példában a/ felhasználó bármely parancsot futtathat auser könyvtárban:

user host = (root) NOPASSWD: /home/someuser/bin/

Megjegyzés: Mindig használja a /home/someuser/bin/ szerkeszteni avisudo fájlt, hogy ne zárd be magad a rendszerből - csak abban az esetben, ha véletlenül valami hibát írsz asudoers fájlba. sudoers a módosított fájlt ideiglenes helyre mentheti, és csak felülírja a valódivisudo fájlt, ha a módosított fájl hiba nélkül értelmezhető.

sudoers helyett/etc/sudoers.d

A/etc/sudoers fájl szerkesztésének alternatívájaként hozzáadhatja a két sort egy új fájlhoz:/etc/sudoers, pl. /etc/sudoers.d. Ez egy elegáns módja annak, hogy elválasszuk a változásokat a/etc/sudoers.d/shutdown jogokig, és hagyjuk az eredetisudo fájlt érintetlenül a könnyebb frissítésekért.

Megjegyzés: Ismét használd a sudoers a fájl szerkesztéséhez, hogy ne zárja ki magát a rendszerből:

sudo visudo -f /etc/sudoers.d/shutdown 

Ez automatikusan biztosítja, hogy az új fájl tulajdonosa és engedélyei helyesen legyenek beállítva.

Havisudo elrontotta

Hasudoers -ot nem használtál a fájlok szerkesztéséhez, majd véletlenül elrontotta a (z)visudo fájlt, vagy összetörte a (z)/etc/sudoers fájlt, akkor a/etc/sudoers.d -ból kizárt.

A megoldás lehet a fájlok javítása a sudo használatával, amely apkexec alternatívája.

sudo:

javítása
pkexec visudo

/etc/sudoers:

javítása
pkexec visudo -f /etc/sudoers.d/shutdown

Ha a tulajdonjog és / vagy a jogosultságok helytelenek a/etc/sudoers.d/shutdown fájlban, akkor asudoers figyelmen kívül hagyja a fájlt, így esetleg kizárja magát ebben a helyzetben. Ismételten asudo paranccsal javíthatja ezt.

A helyes jogosultságoknak így kell lenniük:

$ ls -l /etc/sudoers.d/shutdown 
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown

Használja apkexec -ot ehhez a tulajdonjoghoz és engedélyekhez :

pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown
    

válasz adott mgd 03.07.2012 10:43
forrás