Comment accorder des droits sudo uniquement à des fichiers de script spécifiques?


17

Je voudrais qu'un utilisateur ait des droits sudo (sans vérification de mot de passe) sur quelques scripts shell sous un répertoire spécifique (dans mon cas, /usr/local/tomcat7/bin), et nulle part ailleurs. Quelle est la façon la plus simple d'accomplir cela?

Quelque chose comme ça /etc/sudoersne semblait pas fonctionner:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin

Réponses:


22

Je pense que vous y êtes presque. mettre un /à la fin de votre spécification d'annuaire

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/

À partir de la page de manuel sudoers

Un répertoire est un nom de chemin d'accès complet se terminant par un «/». Lorsque vous spécifiez un répertoire dans une liste Cmnd_List, l'utilisateur pourra exécuter n'importe quel fichier dans ce répertoire (mais pas dans les sous-répertoires qu'il contient).


Merci (aux deux répondeurs), ça a fonctionné! Note à moi: besoin d'invoquer les scripts directement (par exemple sudo catalina.sh stop) - cela ne fonctionne pas: sudo sh catalina.sh stop.
Jonik

7

Ajoutez une barre oblique «/» à la fin du chemin.

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.