Plik sudoers, włącz NOPASSWD dla użytkownika, wszystkie polecenia

104

Przedmowa

To dość skomplikowane pytanie związane z plikiem Sudoers i ogólnie z poleceniem sudo.

UWAGA: Dokonałem tych zmian na dedykowanej maszynie z systemem Ubuntu Desktop 13.04, której używam wyłącznie do celów edukacyjnych. Rozumiem, że jest to ogromne zagrożenie dla bezpieczeństwa sudo NOPASSWD.

Pytanie

Początkowo moją jedyną zmianą w pliku sudoers (/ etc / sudoers) był jeden wiersz, specyfikacja użytkownika, która powinna włączyć 'nicholsonjf', aby uruchamiać wszystkie polecenia za pomocą sudo bez konieczności podawania hasła (patrz linia, która się zaczyna z "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

To jednak nie zadziałało, a za każdym razem, gdy uruchamiałem polecenie jako "nicholsonjf", wciąż otrzymywałem monit o podanie hasła. Mogłem tylko uruchamiać polecenia sudo jako "nicholsonjf" po usunięciu "nicholsonjf" z grup sudo i admin.

Czy ktoś może wyjaśnić, dlaczego to zadziałało?

Czy dlatego, że użytkownik "nicholsonjf" odziedziczył uprawnienia sudo z dwóch specyfikacji grupy "admin" i "sudo" (zobacz poniżej w pliku sudoers), które przesłaniały specyfikację użytkownika "nicholsonjf", ponieważ były one dalej w pliku konfiguracyjnym?

    
zadawane James Nicholson 19.08.2013, 02:45
źródło

3 odpowiedzi

99

Dodana linia została nadpisana. Z man sudoers :

  

Gdy wiele wpisów pasuje do użytkownika, są one stosowane w kolejności.   Tam, gdzie jest wiele dopasowań, używane jest ostatnie dopasowanie (które nie jest   niekoniecznie najbardziej szczegółowe dopasowanie).

W twoim przypadku nicholsonjf był członkiem grupy sudo , więc dla niego ta linia została zastosowana:

%sudo   ALL=(ALL:ALL) ALL

Jeśli chcesz przesłonić wpisy w /etc/sudoers , po prostu umieść za nimi nowe wpisy.

Nowy wpis powinien wyglądać jak

myuser ALL=(ALL) NOPASSWD:ALL dla pojedynczego użytkownika lub

%sudo ALL=(ALL) NOPASSWD:ALL dla grupy.

    
odpowiedział pabouk 03.09.2013, 02:55
źródło
108

Dla pojedynczego użytkownika:

superuser ALL=(ALL) NOPASSWD:ALL

Dla grupy:

%supergroup  ALL=(ALL) NOPASSWD:ALL
    
odpowiedział Fedir RYKHTIK 16.01.2015, 16:28
źródło
-1

Jak Vince ma wymienione w komentarzu , możesz użyć tej linii:

%sudo ALL=NOPASSWD: ALL

(Różni się od linii przedstawionych w tych odpowiedzi i rozwiązało problem dla mnie.)

    
odpowiedział E. Fortes 04.10.2017, 11:53
źródło

Przeczytaj inne pytania na temat tagów