Menyiapkan sudo tanpa kata sandi di distribusi Linux

18

Baru-baru ini saya mengatur sistem Fedora 28 & Ubuntu 18.04 dan ingin mengonfigurasi akun pengguna utama saya di keduanya sehingga saya dapat menjalankan sudoperintah tanpa diminta kata sandi.

Bagaimana saya bisa melakukan ini pada sistem masing-masing?

slm
sumber

Jawaban:

28

Ini sangat sepele jika Anda menggunakan grup Unix khusus yang dipanggil wheelsistem Fedora. Anda hanya perlu melakukan hal berikut:

  1. Tambahkan pengguna utama Anda ke wheelgrup

    $ sudo gpasswd -a <primary account> wheel
    
  2. Aktifkan NOPASSWD untuk %wheelgrup di/etc/sudoers

    $ sudo visudo
    

    Kemudian komentari baris ini:

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

    Dan batalkan komentar pada baris ini:

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

    Simpan file ini dengan Shift+ Z+ Z.

  3. Logout dan masuk kembali

    CATATAN: Langkah terakhir ini wajib dilakukan agar desktop Anda dan semua shell tingkat atas yang sesuai diulang kembali menunjukkan bahwa akun utama Anda sekarang adalah anggota wheelgrup Unix.

slm
sumber
Apa yang akan berubah jika wheelAnda tidak menggunakan grup lain?
Giacomo Alzetta
@GiacomoAlzetta Ubah %wheelke grup itu.
Barmar
19

Secara tradisional pada distribusi berbasis Debian seperti Debian / Ubuntu / Mint / Kali / Antix, grup default untuk sudo adalah, well sudo,.

Jadi untuk menambahkan sudopengguna yang diaktifkan tanpa kata sandi ke sistem berbasis Debian, langkah-langkahnya adalah:

  1. Install sudo

    Di Debian, tergantung pada opsi instalasi, Anda sering berakhir tanpa sudodiinstal secara default.

    Jika paket sudotidak diinstal (mis. Anda tidak punya /etc/sudoers), jalankan sebagai root:

    # apt install sudo
    
  2. Tambahkan pengguna ke grup sudo

    Tambahkan pengguna ke grup sudo, jika belum ada di grup sudo (Ubuntu dan turunannya menambahkan pengguna yang dibuat dalam instalasi secara otomatis ke grup sudo).

    Saat mengatur pengguna sudo pertama, Anda harus menjadi yang pertama sebagai root:

    # gpasswd -a <primary account> sudo
    

    Ketika Anda sudah memiliki sudopengguna, disarankan sebagai praktik keamanan yang baik, untuk mengatur pengguna lain dalam grup sudo melalui pengguna itu:

    $ sudo gpasswd -a <primary account> sudo
    
  3. Ubah /etc/sudoersuntuk menambahkan arahan NOPASSWD

    Anda kemudian mengedit baris default /etc/sudoersuntuk sudogrup dengan:

    $ sudo visudo
    

    dan ubah dari:

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

    untuk:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Logout dan masuk kembali

    Jika masuk sistem, maka pengguna yang dituju harus keluar dan masuk untuk perubahan pengguna milik sudogrup agar berlaku.

CATATAN: Dalam Debian grup wheelsering digunakan untuk membatasi penggunaan PAM di sudalam grup, alih-alih menggunakannya untuk sudoperintah seperti pada distribusi berbasis RedHat / SuSE.

Secara tradisional dalam distribusi berbasis Debian, untuk sudoperintah yang Anda gunakan sudogrup.

Rui F Ribeiro
sumber
7

Sebagian besar distribusi memiliki baris ini di /etc/sudoers/:

#includedir /etc/sudoers.d

Akibatnya, cara mudah untuk menambahkan satu pengguna adalah membuat file yang sesuai di /etc/sudoers.d/direktori; Saya biasanya memberi nama untuk ditambahkan oleh pengguna:

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

Anda mungkin juga ingin menambahkan Defaults:%s !lecture, !authenticate\ndan / atau opsi lain ke file.

Toby Speight
sumber