Soubor Sudoers, povolit NOPASSWD pro uživatele, všechny příkazy

106

Předmluva

Jedná se o poměrně složitou otázku související se souborem Sudoers a příkazem sudo obecně.

POZNÁMKA: Tyto změny jsem provedl na vyhrazeném počítači se systémem Ubuntu Desktop 13.04, který používám výhradně pro účely učení. Chápu, že je to obrovské bezpečnostní riziko pro povolení NOPASSWD sudo.

Otázka

Zpočátku byla jediná změna souboru sudoers (/ etc / sudoers) jeden řádek, uživatelská specifikace, která měla povolit 'nicholsonjf' spouštět všechny příkazy s sudo bez nutnosti zadat heslo (viz řádek, který začíná s 'nicholsonjf'):

# 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"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
nicholsonjf    ALL=NOPASSWD: ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Nicméně to nefungovalo a vždycky jsem byl vyzván k zadání hesla pokaždé, když jsem spustil příkaz jako 'nicholsonjf'. Byl jsem schopen spustit příkazy sudo pouze jako "nicholsonjf", jakmile jsem odstranil "nicholsonjf" ze skupiny sudo a admin.

Může někdo vysvětlit, proč to fungovalo?

Je to proto, že uživatel 'nicholsonjf' zdědil práva sudo ze dvou skupinových specifikací 'admin' a 'sudo' (viz níže v souborech sudoers), které převyšovaly specifikaci uživatele 'nicholsonjf' dolů v konfiguračním souboru?

    
dané James Nicholson 19.08.2013 02:45

3 odpovědi

104

Váš přidaný řádek byl přepsán. Zman sudoers:

  

Pokud se pro uživatele liší více záznamů, použijí se v pořadí.   Pokud existuje více shody, použije se poslední shoda (což není   nutně nejpřesnější shoda).

Ve vašem případěnicholsonjf byl členem skupinysudo takže pro něj tento řádek platí:

%sudo   ALL=(ALL:ALL) ALL

Pokud chcete přepsat položky v/etc/sudoers, stačí zadat nové záznamy za nimi.

Nová položka by měla vypadat jako

myuser ALL=(ALL) NOPASSWD:ALL pro jednoho uživatele nebo

%sudo ALL=(ALL) NOPASSWD:ALL pro skupinu.

    
odpověděl pabouk 03.09.2013 02:55
109

Pro jednoho uživatele:

superuser ALL=(ALL) NOPASSWD:ALL

Pro skupinu:

%supergroup  ALL=(ALL) NOPASSWD:ALL
    
odpověděl Fedir RYKHTIK 16.01.2015 16:28
0

Vince uvedeno v komentáři můžete použít tento řádek:

%sudo ALL=NOPASSWD: ALL

(Toto se liší od řádků uvedených v těch odpovídá a vyřešil mi problém.)

    
odpověděl E. Fortes 04.10.2017 11:53