Si je comprends bien vos commentaires, le problème ici est que la commande sera émise via une connexion qui n'a pas la possibilité d'entrer le mot de passe par défaut que sudo demande. De plus, dans de nombreuses distributions de système d'exploitation, sudo exigera par défaut un TTY - ce que ce programme peut ne pas avoir.
Cependant, sudo est capable d'avoir une structure d'autorisations très fine, permettant à un ou plusieurs utilisateurs d'émettre une commande particulière sans mot de passe et ATS. Ci-dessous, je vais montrer trois façons de configurer cela pour vos besoins. Quel que soit celui que vous choisissez, l'utilisateur pourra désormais exécuter la commande sudo rndc reload
sans avoir à saisir de mot de passe.
( De plus, cela peut être inutile, mais ... s'il vous plaît rappelez - vous de faire une copie de sauvegarde de votre fichier sudoers avant de le modifier, de garder une coquille où vous êtes ouvert racine dans le cas où vous devez revenir à la sauvegarde et à modifier en utilisant visudo
au lieu desudo vi /etc/sudoers
. Espérons que ces précautions seront inutiles, mais ... mieux de les avoir et pas besoin d' eux que l'inverse!)
1. Si vous ne souhaitez pas exiger un ATS pour toute demande
Le moyen le plus simple de se débarrasser des exigences TTY (s'il en existe un) est de s'assurer que la ligne commençant par Defaults
in /etc/sudoers
ne contient pas le mot requiretty
- à la place, il doit contenir !requiretty
. Cependant, si vous faites cela, cela signifie qu'aucune commande sudo ne nécessitera un tty!
Vous devrez également ajouter la ligne
rndcuser ALL = (root) NOPASSWD: /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
2. Si vous souhaitez exiger un ATS pour tous les utilisateurs sauf celui-ci
Cela peut être fait en définissant une valeur par défaut pour cet utilisateur, comme ceci:
Defaults:rndcuser !requiretty
rndcuser ALL = (root) NOPASSWD: /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
3. Si vous souhaitez requre un TTY pour toutes les commandes sauf celle-ci par cet utilisateur
C'est un peu plus complexe, en raison de la syntaxe du fichier sudoers. Vous devez créer un alias de commande pour la commande, puis définir une valeur par défaut pour cet alias de commande, comme suit:
Cmnd_Alias RNDC_CMD = /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
Defaults!RNDC_CMD !requiretty
rndcuser ALL = (root) NOPASSWD: RNDC_CMD
sudo
sert. Quelles sont vos objections commerciales à son utilisationsudo
pour cela?