Je veux autoriser un utilisateur à exécuter grep (via sudo) et à grep pour une chaîne spécifique dans un fichier spécifique. Je ne veux pas autoriser cet utilisateur à pouvoir exécuter grep sur tous les fichiers. L'utilisateur n'a pas accès en lecture au fichier, d'où l'obligation d'utiliser sudo. J'essaie d'écrire un chèque nagios qui greps le fichier journal d'un autre service sur la machine.
Cependant, cela ne fonctionne pas, sudo continue de demander un mot de passe.
Ma commande est: sudo grep "string I want (" /var/log/thefilename.log
(oui, il y a un raw (
et quelques espaces dans la chaîne que je veux grep)
/etc/sudoers.d/user-can-grep
a ce contenu:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
Ce fichier sudoers appartient à root:root
et dispose d'autorisations-r--r-----
Le serveur est Ubuntu trusty 14.04.3 LTS.
Comment puis-je faire fonctionner cela?
sudo
.
grep
, et which grep
me dit qu'il utilise /bin/grep
. AFAIK dans le fichier sudo, vous devez spécifier le chemin complet du binaire, même si vous l'appelez sans le chemin complet.