Tôi muốn cho phép một người dùng chạy grep (thông qua sudo) và grep cho một chuỗi cụ thể trong một tệp cụ thể. Tôi không muốn cho phép người dùng này có thể chạy grep trên tất cả các tệp. Người dùng không có quyền truy cập đọc vào tệp, do đó yêu cầu sử dụng sudo. Tôi đang cố gắng viết một kiểm tra nagios để kiểm tra tệp nhật ký của dịch vụ khác trên máy.
Tuy nhiên nó không hoạt động, sudo cứ hỏi mật khẩu.
Lệnh của tôi là: sudo grep "string I want (" /var/log/thefilename.log
(vâng, có một phần thô (
và một số khoảng trắng trong chuỗi tôi muốn grep)
/etc/sudoers.d/user-can-grep
có nội dung này:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
Tập tin sudoers này được sở hữu bởi root:root
và có quyền-r--r-----
Máy chủ là Ubuntu đáng tin cậy 14.04.3 LTS.
Làm thế nào tôi có thể làm cho công việc này?
sudo
.
grep
và which grep
cho tôi biết nó đang sử dụng /bin/grep
. AFAIK trong tệp sudo bạn cần chỉ định đường dẫn đầy đủ của tệp nhị phân, ngay cả khi bạn gọi nó mà không có đường dẫn đầy đủ.