Chcę zezwolić jednemu użytkownikowi na uruchomienie grep (poprzez sudo) i grep dla jednego określonego ciągu w jednym określonym pliku. Nie chcę zezwalać temu użytkownikowi na uruchomienie grep na wszystkich plikach. Użytkownik nie ma dostępu do odczytu pliku, stąd wymóg korzystania z sudo. Próbuję napisać sprawdzenie nagios, które greps plik dziennika innej usługi na komputerze.
Jednak to nie działa, sudo wciąż pyta o hasło.
Moje polecenie brzmi: sudo grep "string I want (" /var/log/thefilename.log
(tak, (
w łańcuchu jest surowe i niektóre spacje, które chcę grepować)
/etc/sudoers.d/user-can-grep
ma tę treść:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
Ten plik sudoers jest własnością root:root
i ma uprawnienia-r--r-----
Serwer to zaufany Ubuntu 14.04.3 LTS.
Jak mogę to zrobić?
sudo
.
grep
i which grep
mówi mi, że używa /bin/grep
. AFAIK w pliku sudo musisz podać pełną ścieżkę pliku binarnego, nawet jeśli wywołujesz go bez pełnej ścieżki.