Saya ingin mengizinkan satu pengguna untuk menjalankan grep (melalui sudo), dan untuk grep untuk satu string spesifik dalam satu file tertentu. Saya tidak ingin mengizinkan pengguna ini untuk dapat menjalankan grep pada semua file. Pengguna tidak memiliki akses baca ke file, karenanya persyaratan untuk menggunakan sudo. Saya mencoba untuk menulis cek nagios yang menangkap file log layanan lain di mesin.
Namun itu tidak berhasil, sudo terus meminta kata sandi.
Perintah saya adalah: sudo grep "string I want (" /var/log/thefilename.log
(ya, ada ruang mentah (
dan beberapa di string yang saya ingin grep)
/etc/sudoers.d/user-can-grep
memiliki konten ini:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
File sudoers ini dimiliki oleh root:root
dan memiliki izin-r--r-----
Servernya adalah Ubuntu terpercaya 14.04.3 LTS.
Bagaimana saya bisa membuat ini berfungsi?
sudo
.
grep
, dan which grep
memberitahu saya itu menggunakan /bin/grep
. AFAIK dalam file sudo Anda perlu menentukan path lengkap biner, bahkan jika Anda menyebutnya tanpa path lengkap.