Je dois autoriser une commande spécifique sur une boîte Debian Linux pour un seul utilisateur. J'ai essayé cela dans le /etc/sudoers
fichier:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}'
Cela ne fonctionne pas comme prévu. Si j'exécute la commande en tant qu'utilisateur zabbix avec sudo, il demande le mot de passe (bien que j'aie spécifié l' NOPASSWD
option).
Cependant, cela fonctionne:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get
Mais a l'inconvénient que toutes les sous-commandes de apt-get
sont autorisées. Existe-t-il un moyen de résoudre ce problème pour n'autoriser qu'une commande spécifique?
Vous vous trompez probablement de la façon dont la redirection interagit avec sudo. La redirection est effectuée au niveau de l'utilisateur appelant et non de l'utilisateur privilégié. Il serait probablement plus facile pour vous d'envelopper votre commande dans un script et de permettre ensuite à l'utilisateur zabbix d'exécuter ce script, par exemple
l'ensemble sudoers comme
Maintenant, le script entier sera exécuté en tant qu'utilisateur privilégié et pas seulement la commande particulière apt-get. Assurez-vous cependant que l'utilisateur zabbix ne peut pas écrire dans le script.
la source