Jak spustím specifické sudo příkazy bez hesla?

189

Na jednom konkrétním stroji musím často spouštětsudo příkazů každou chvíli. Jsem v pořádku při zadávání hesla nasudo ve většině případů.

Existují však příkazy 3sudo Chci spustit bez zadání hesla :

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

Jak mohu tyto příkazy vyloučit z ochrany heslem nasudo?

    
dané Z9iT 03.07.2012 10:31

1 odpověď

254

Použijte direktivuNOPASSWD

SměrniciNOPASSWD můžete použít ve svém souboru/etc/sudoers .

Pokud se váš uživatel nazýváuser a hostitel se nazýváhost, můžete tyto řádky přidat do/etc/sudoers:

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

Umožní uživateliuser spouštět požadované příkazy nahost bez zadání hesla. Všechny ostatní příkazysudo ed budou vyžadovat heslo.

Příkazy zadané v souborusudoers musí být plně kvalifikovány (tj. pomocí absolutní cesty k příkazu ke spuštění), jak je popsáno v manco_kde% stránka man . Poskytnutí relativní cesty je považováno za chybu syntaxe.

Pokud příkaz končí zakončujícím znakemsudoers a odkazuje na adresář, uživatel bude moci spustit libovolný příkaz v tomto adresáři (ale ne v žádném podadresáři v něm). V následujícím příkladu může uživatel/ spustit libovolný příkaz v adresářiuser:

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

Poznámka: Vždy použijte příkaz /home/someuser/bin/ , abyste upravili souborvisudo, abyste se ujistili, že se nezakrýváte ze systému - jen v případě, že byste náhodně napsali něco nesprávného souborusudoers. sudoers uloží upravený soubor do dočasného umístění a pouze přepíše skutečný souborvisudo, pokud lze upravený soubor analyzovat bez chyb.

Použitísudoers místo úpravy/etc/sudoers.d

Jako alternativu k úpravě souboru/etc/sudoers můžete přidat dva řádky do nového souboru v/etc/sudoers, např. /etc/sudoers.d. Jedná se o elegantní způsob, jak oddělit různé změny práv/etc/sudoers.d/shutdown a ponechá původní souborsudo nedotčený pro snazší upgrady.

Poznámka: Opět byste měli použít příkaz sudoers , abyste upravili soubor, abyste se ujistili, že se nezakrýváte ze systému:

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

Také se automaticky zajistí, že vlastník a oprávnění nového souboru jsou správně nastaveny.

Pokudvisudo je špatně

Pokud jste nepoužilisudoers pro úpravu souborů a pak náhodně zmiňovalivisudo nebo zmátli soubor v/etc/sudoers, pak budete zablokováni z/etc/sudoers.d.

Řešením by bylo opravit soubory pomocí sudo , které je alternativoupkexec.

Opravujesudo:

pkexec visudo

Opravuje/etc/sudoers:

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

Pokud jsou vlastnictví a / nebo oprávnění nesprávná pro libovolný soubor/etc/sudoers.d/shutdown, soubor bude ignorovánsudoers, takže v této situaci byste také mohli být zablokováni. Opět můžete použít tento problémsudo.

Správná oprávnění by měla vypadat takto:

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

Použijtepkexec jako toto k opravě vlastnictví a oprávnění :

pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown
    
odpověděl mgd 03.07.2012 10:43