Je veux ajouter une entrée à mes suoders pour permettre à un utilisateur d'exécuter une commande avec exactement un argument sans option.
# tail -1 /etc/sudoers
ALL ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user:
Puis-je faire cela en utilisant le sudoers sytnax? Ou dois-je créer un script d'aide?
[a-z]*
déjà l'argument que je veux. C'est donc un argument variable. (J'utilise / bin / echo uniquement pour les tests.)Réponses:
À ma connaissance, vous ne pouvez pas passer d'arguments non-commande dans sudo si cet argument varie.
Vous pouvez spécifier quelque chose comme ceci:
Cela permettrait à l'utilisateur de suivre certains fichiers mais pas d'autres fichiers.
Si vous devez passer une variable, je recommande un script wrapper.
Voici un exemple de wrapper rsync:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
Si vous recherchez des emballages sudo sur Google, vous pouvez trouver de nombreux autres exemples.
Assurez-vous de coder en dur tous les chemins et d'exécuter des vérifications d'intégrité sur l'entrée si l'utilisateur ne peut pas faire confiance.
la source