Pertanyaan: Saya ingin menginstal sebuah paket sebagai pengguna lokal dan menggunakan sudo dimanapun diperlukan. Untuk melakukannya, saya membuat akun bernama 'stack' dan membuat entri di bawah ini di /etc/sudoers saya berkas.
# User privilege specification root ALL=(ALL:ALL) ALL stack ALL=(ALL) NOPASSWD:ALL
Namun, ketika diverifikasi melalui baris perintah menggunakan perintah sudo -s , ia meminta kata sandi seperti yang ditunjukkan di bawah ini:
stack@cloudsec2:~$ sudo -s [sudo] password for stack:
Tolong bantu saya, di mana saya melakukan kesalahan?
Solusi 1: Anda harus meletakkan baris itu setelah baris dengan aturan untuk grup admin. Karena ketika beberapa entri cocok untuk pengguna, mereka diterapkan secara berurutan. Jika ada beberapa kecocokan, kecocokan terakhir digunakan (yang belum tentu kecocokan yang paling spesifik).
Jadi, file sudoers Anda akan terlihat seperti di bawah ini:
# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL stack ALL=(ALL) NOPASSWD:ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL
Solusi 2: Daripada memindahkan baris, Anda cukup menghapusnya dan menambahkan NOPASSWD ke entri untuk %sudo seperti yang ditunjukkan di bawah ini:
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
Catatan:Pastikan login Anda termasuk dalam grup sudo seperti yang ditunjukkan di bawah ini:
root@cloudsec2:~# id stack uid=1000(stack) gid=1000(stack) groups=1000(stack),4(adm),27(sudo),
Solusi 3: Pindahkan baris Anda ke file di bawah /etc/sudoers.d/
visudo -f /etc/sudoers.d/myOverrides
Masukkan baris di bawah ini:
stack ALL=(ALL:ALL) NOPASSWD:ALL
Sekarang buka /etc/sudoers file dan batalkan komentar pada baris di bawah ini:
visudo -f /etc/sudoers #includedir /etc/sudoers.d
Ini adalah pendekatan yang lebih baik untuk mengedit sudoers.