Przedmowa
Jest to dość złożone pytanie związane z plikiem Sudoers i ogólnie poleceniem sudo.
UWAGA: Wprowadziłem te zmiany na dedykowanym komputerze z systemem Ubuntu Desktop 13.04, którego używam wyłącznie do celów edukacyjnych. Rozumiem, że włączenie NOPASSWD sudo jest ogromnym zagrożeniem dla bezpieczeństwa.
Pytanie
Początkowo moją jedyną zmianą w pliku sudoers (/ etc / sudoers) była jedna linia, specyfikacja użytkownika, która powinna umożliwić „nicholsonjf” uruchamianie wszystkich poleceń za pomocą sudo bez konieczności wprowadzania hasła (patrz wiersz rozpoczynający się od „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
Jednak to nie zadziałało, a za każdym razem, gdy uruchamiałem polecenie jako „nicholsonjf”, wciąż pojawiał się monit o podanie hasła. Mogłem uruchomić polecenia sudo jako „nicholsonjf” dopiero po usunięciu „nicholsonjf” z grup sudo i admin.
Czy ktoś może wyjaśnić, dlaczego to zadziałało?
Czy to dlatego, że użytkownik „nicholsonjf” odziedziczył prawa sudo z dwóch specyfikacji grup „admin” i „sudo” (patrz poniżej w pliku sudoers), które zastępowały specyfikację użytkownika „nicholsonjf”, ponieważ znajdowały się w dalszej części plik konfiguracyjny?