Aktifkan sudo tanpa kata sandi sebagai pengguna tertentu

26

Saya memiliki dua pengguna di sistem itsadoksaya elasticsearch:, pengguna utama saya, dan , pengguna dengan ulimit berbeda untuk menjalankan ElasticSearch.

Saya ingin dapat menjalankan hal-hal sebagai pengguna sekunder tanpa diminta kata sandi setiap saat.

Saya menambahkan baris berikut ke /etc/sudoers:

itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL

Cara saya memahaminya, ini harus memungkinkan pengguna itsadok, pada host apa pun, untuk menjalankan perintah apa pun sebagai (pengguna atau grup) elasticsearch tanpa kata sandi. Namun, mencoba sesuatu seperti

itsadok@dev001$ sudo -u elasticsearch ls

meminta saya untuk kata sandi. Memulai ulang mesin tidak membantu.

Apa yang saya lakukan salah?

PEMBARUAN :

Ternyata kami bahwa urutan garis dalam sudoerssignifikan. Saya menempatkan baris di bawah "Spesifikasi hak istimewa pengguna" yang terdengar seperti tempat yang tepat, tetapi baris untuk %admingrup yang datang kemudian mengesampingkan pengaturan.

Menempatkan baris yang sama di akhir file sudoers memperbaiki masalah.

itsadok
sumber

Jawaban:

12

Jawaban revisi dari komentar: Jika Anda menempatkan arahan di bawah ini #includedir, mereka diabaikan. Pindahkan garis samping sudoatau adminkelompok definisi, atau menempatkannya di file terpisah di /etc/sudoers.d/.

Tuminoid
sumber
Tidak bekerja Juga, file sudah memiliki root ALL=(ALL:ALL) ALLtanpa spasi di sekitar titik dua, jadi sepertinya tidak benar. Untuk amannya, saya mencoba saja (elasticsearch). Tidak bekerja
itsadok
Anda benar, itu bekerja tanpa spasi di setidaknya 12.10. Ubuntu mana yang Anda gunakan dan di mana sudoersAnda menempatkan baris ini? Saya memiliki ingatan samar bahwa jika pada sistem yang lebih lama Anda menempatkan garis setelah pertama #includedir, itu diabaikan. Jika di akhir file, coba masukkan di atas yang disertakan.
Tuminoid
1
Komentar Anda membuat saya di jalur yang benar: urutan entri penting. Pengaturan kemudian menimpa pengaturan sebelumnya.
itsadok
16

Ikuti langkah ini:

  1. Edit file sudoers (ini bisa ada di /etc/sudoers.d/file_name)
sudo visudo -f /etc/sudoers
  1. Tambahkan baris di akhir file
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
  1. Menyimpan file
esc :wq!
jatashankar shukla
sumber
Ini memungkinkan pengguna untuk menjalankan semua perintah pada semua host tanpa kata sandi seperti pengguna mana pun, tetapi itu tidak memberikan hak istimewa grup apa pun, yang merupakan bagian dari pertanyaan awal. Secara umum, ini adalah saran buruk karena Anda memberi pengguna hak istimewa yang sangat luas.
d4nyll