Я хочу дозволити одному користувачеві запускати grep (через sudo) та грепати за один конкретний рядок в одному конкретному файлі. Я не хочу дозволити цьому користувачеві мати змогу запускати grep на всіх файлах. Користувач не має доступу до файлу для читання, звідси випливає вимога використовувати sudo. Я намагаюся написати перевірку nagios, яка містить файл журналу іншої служби на машині.
Однак це не працює, sudo продовжує просити пароль.
Моя команда: sudo grep "string I want (" /var/log/thefilename.log
(так, (
у рядку є необроблений пробіл, і кілька пробілів, які я хочу простукувати)
/etc/sudoers.d/user-can-grep
містить цей вміст:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
Цей файл судорів належить root:root
і має дозволи-r--r-----
Сервер надійний Ubuntu 14.04.3 LTS.
Як я можу змусити цю роботу?
sudo
.
grep
і which grep
каже мені, що він використовується /bin/grep
. AFAIK у файлі sudo потрібно вказати повний шлях двійкового файлу, навіть якщо ви називаєте його без повного шляху.