Konfigurowanie sudo bez hasła w dystrybucjach Linuksa

18

Niedawno skonfigurowałem systemy Fedora 28 i Ubuntu 18.04 i chciałbym skonfigurować moje główne konto użytkownika na obu, aby móc uruchamiać sudopolecenia bez monitowania o hasło.

Jak mogę to zrobić na odpowiednich systemach?

slm
źródło

Odpowiedzi:

28

Jest to dość trywialne, jeśli korzystasz ze specjalnej grupy uniksowej wywoływanej wheelw systemach Fedora. Musisz jedynie wykonać następujące czynności:

  1. Dodaj głównego użytkownika do wheelgrupy

    $ sudo gpasswd -a <primary account> wheel
    
  2. Włącz NOPASSWD dla %wheelgrupy w/etc/sudoers

    $ sudo visudo
    

    Następnie skomentuj ten wiersz:

    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    

    I odkomentuj tę linię:

    ## Same thing without a password
    %wheel  ALL=(ALL)       NOPASSWD: ALL
    

    Zapisz ten plik za pomocą Shift+ Z+ Z.

  3. Wyloguj się i zaloguj ponownie

    UWAGA: Ten ostatni krok jest obowiązkowy, aby ponownie uruchomić pulpit i wszystkie odpowiadające mu powłoki najwyższego poziomu, pokazując, że twoje konto podstawowe jest teraz członkiem wheelgrupy Unix.

slm
źródło
Co by się zmieniło, gdyby zamiast wheelciebie użyłeś innej grupy?
Giacomo Alzetta,
@GiacomoAlzetta Zmień %wheelna tę grupę.
Barmar
19

Tradycyjnie na bazie Debiana dystrybucji, takich jak Debian / Ubuntu / Mint / kali / Antix, grupy domyślnej dla sudo jest dobrze sudo.

Aby dodać sudoużytkowników bez hasła do systemu opartego na Debianie, wykonaj następujące czynności:

  1. zainstalować sudo

    W Debianie, w zależności od opcji instalacji, często kończysz się sudodomyślnie bez instalacji.

    Jeśli pakiet sudonie jest zainstalowany (np. Nie masz /etc/sudoers), uruchom jako root:

    # apt install sudo
    
  2. Dodaj użytkownika do grupy sudo

    Dodaj użytkownika do grupy sudo, jeśli nie jest jeszcze w grupie sudo (Ubuntu i pochodne dodają automatycznie utworzonego użytkownika podczas instalacji do grupy sudo).

    Konfigurując pierwszego użytkownika sudo, musisz przejść do pierwszego jako root:

    # gpasswd -a <primary account> sudo
    

    Jeśli masz już sudoużytkownika, dobrą praktyką bezpieczeństwa jest skonfigurowanie innych użytkowników w grupie sudo za pośrednictwem tego użytkownika:

    $ sudo gpasswd -a <primary account> sudo
    
  3. Zmodyfikuj, /etc/sudoersaby dodać dyrektywę NOPASSWD

    Następnie edytuj domyślny wiersz /etc/sudoersdla sudogrupy za pomocą:

    $ sudo visudo
    

    i zmień to z:

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

    do:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Wyloguj się i zaloguj ponownie

    Jeśli zalogowany w systemie, zamierzony użytkownik musi się wylogować i zalogować, aby zmiana użytkownika należącego do sudogrupy zaczęła obowiązywać.

UWAGA: W Debianie grupa wheeljest często używana do ograniczania w PAM korzystania z sugrupy, zamiast używania jej dla sudopolecenia, jak w dystrybucjach opartych na RedHat / SuSE.

Tradycyjnie w dystrybucjach opartych na Debianie, dla sudopolecenia używanego w sudogrupie.

Rui F. Ribeiro
źródło
7

Większość dystrybucji ma tę linię w /etc/sudoers/:

#includedir /etc/sudoers.d

W związku z tym łatwym sposobem na dodanie jednego użytkownika jest utworzenie odpowiedniego pliku w /etc/sudoers.d/katalogu; Zwykle nazywam to, aby dodać użytkownika:

add_sudoer() {
    if ! test -n "$1"
    then echo "Usage: $0 <user>" >&2; return
    fi

    printf >"/etc/sudoers.d/$1" '%s    ALL= NOPASSWD: ALL\n' "$1"
}

Możesz także dodać Defaults:%s !lecture, !authenticate\ni / lub inne opcje do pliku.

Toby Speight
źródło