Ich möchte einem Benutzer erlauben, grep (über sudo) auszuführen und nach einer bestimmten Zeichenfolge in einer bestimmten Datei zu suchen. Ich möchte nicht zulassen, dass dieser Benutzer grep für alle Dateien ausführen kann. Der Benutzer hat keinen Lesezugriff auf die Datei, daher muss sudo verwendet werden. Ich versuche, eine Nagios-Überprüfung zu schreiben, die die Protokolldatei eines anderen Dienstes auf dem Computer abruft.
Es funktioniert jedoch nicht, sudo fragt nach einem Passwort.
Mein Befehl lautet: sudo grep "string I want (" /var/log/thefilename.log(Ja, es gibt ein RAW (und einige Leerzeichen in der Zeichenfolge, die ich abfragen möchte.)
/etc/sudoers.d/user-can-grep hat diesen Inhalt:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
Diese sudoers-Datei gehört root:rootund hat Berechtigungen-r--r-----
Der Server ist Ubuntu Trusty 14.04.3 LTS.
Wie kann ich das schaffen?
sudo.
grep, und which grepsagt mir, dass es verwendet /bin/grep. AFAIK in sudo-Datei müssen Sie den vollständigen Pfad der Binärdatei angeben, auch wenn Sie es ohne den vollständigen Pfad aufrufen.