Jak uruchomić polecenie sudo bez hasła?

198

W jaki sposób użytkownik ubuntu na obrazach AWS dla Ubuntu Server 12.04 ma hasło bez hasła sudo dla wszystkich poleceń, gdy nie ma dla niego konfiguracji w /etc/sudoers ?

Używam serwera Ubuntu 12.04 na Amazon. Chcę dodać nowego użytkownika, który zachowuje się tak samo jak domyślny użytkownik Ubuntu. W szczególności chcę hasła password sudo dla tego nowego użytkownika.

Dodałem nowego użytkownika i rozpocząłem edycję /etc/sudoers (używając oczywiście Visudo). Od odczytania tego pliku wydawało się, że domyślny użytkownik ubuntu otrzymywał hasło bez hasła sudo z bycia członkiem grupy admin . Więc dodałem do tego mojego nowego użytkownika. Co nie działało. Następnie próbowałem dodać dyrektywę NOPASSWD do sudoers . Co też nie zadziałało.

W każdym razie, teraz jestem po prostu ciekawy. W jaki sposób użytkownik ubuntu otrzymuje uprawnienia bez hasła, jeśli nie są zdefiniowane w /etc/sudoers . Jaki mechanizm pozwala na to?

    
zadawane aychedee 23.09.2012, 11:30
źródło

3 odpowiedzi

288

Okej, znalazłem odpowiedź, więc równie dobrze możesz ją tutaj podać do kompletności. Pod koniec /etc/sudoers jest to, co uważałem za komentarz:

#includedir /etc/sudoers.d

Jednak to faktycznie obejmuje zawartość tego katalogu. Wewnątrz którego znajduje się plik %kod%. Który ma oczekiwaną zawartość

# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL

Tutaj właśnie znajduje się konfiguracja sudo dla domyślnego użytkownika Ubuntu.

Powinieneś edytować ten plik używając visudo. Poniższe polecenie pozwala edytować poprawny plik za pomocą visudo.

sudo visudo -f /etc/sudoers.d/90-cloudimg-ubuntu

Dodaj następującą linię:

aychedee ALL=(ALL) NOPASSWD:ALL

Na końcu.

    
odpowiedział aychedee 23.09.2012, 12:27
źródło
73

Zauważyłem, że najbardziej prostą rzeczą do zrobienia, aby łatwo odtworzyć to zachowanie na wielu serwerach, było:

sudo visudo

Zmień ten wiersz:

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

do tego wiersza:

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

I przenieś poniżej tego wiersza:

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

powinieneś teraz mieć to:

# 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

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

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

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

#includedir /etc/sudoers.d

to dla każdego użytkownika, który potrzebuje dostępu sudo Z hasłem :

sudo adduser <user> sudo

i dla każdego użytkownika, który potrzebuje dostępu sudo BEZ hasła :

sudo adduser <user> admin

i na końcu uruchom:

sudo service sudo restart

I to wszystko!

Edycja: Może być konieczne dodanie grupy administracyjnej, ponieważ domyślnie nie istnieje.

sudo groupadd admin

Możesz również dodać domyślnego użytkownika AWS ubuntu do grupy admin za pomocą tego polecenia:

sudo usermod ubuntu -g admin
    
odpowiedział jiminikiz 03.04.2014, 23:45
źródło
-1

Krótka odpowiedź bez użycia jakiegokolwiek edytora (testowany na bashu, bardzo ryzykowny do wykonania na zdalnych hostach).

Skonfiguruj sudo do pracy bez hasła dla bieżącego użytkownika:

echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers

Sprawdź edycję za pomocą:

sudo visudo -c

Sprawdź, czy możesz użyć sudo bez hasła:

sudo cat /etc/sudoers | grep "$USER"

... lub po prostu spróbuj za pomocą:

sudo <anything>
    
odpowiedział user315445 14.08.2014, 00:25
źródło

Przeczytaj inne pytania na temat tagów