Bagaimana cara memberikan hak sudo hanya untuk file skrip tertentu?

17

Saya ingin pengguna memiliki hak sudo (tanpa pemeriksaan kata sandi) untuk beberapa skrip shell di bawah direktori tertentu (dalam kasus saya, /usr/local/tomcat7/bin), dan ke tempat lain. Apa cara paling sederhana untuk mencapai ini?

Sesuatu seperti ini /etc/sudoerssepertinya tidak berfungsi:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin
Jonik
sumber

Jawaban:

22

Saya pikir Anda hampir sampai. letakkan /di akhir spesifikasi direktori Anda

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/

Dari halaman manual sudoers

Direktori adalah nama jalur yang sepenuhnya memenuhi syarat yang diakhiri dengan '/'. Saat Anda menentukan direktori di Cmnd_List, pengguna akan dapat menjalankan file apa pun di dalam direktori tersebut (tetapi tidak di subdirektori mana pun di dalamnya).

user9517
sumber
Terima kasih (untuk kedua penjawab), berhasil! Catatan untuk diri sendiri: perlu memanggil skrip langsung (misalnya sudo catalina.sh stop) - ini tidak bekerja: sudo sh catalina.sh stop.
Jonik
7

Tambahkan garis miring '/' ke ujung jalan.

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
h0tw1r3
sumber