Je veux désactiver requiretty pour pouvoir utiliser les scripts dans les scripts, mais je préfère le désactiver uniquement pour une seule commande plutôt que pour tout. Est-ce possible dans la configuration sudoers?
Vous pouvez remplacer le paramètre par défaut pour des options telles que requiretty
pour un utilisateur spécifique ou pour une commande spécifique (ou pour un hôte ou utilisateur spécifique), mais pas pour une commande spécifique lorsqu'elle est exécutée en tant qu'utilisateur spécifique.
Par exemple, en supposant que requiretty
est défini dans les options de compilation par défaut, ce qui suit sudoers
fichier permet à la fois artbristol
et bob
d'exécuter en /path/to/program
tant que root à partir d' un script. artbristol
n'a pas besoin de mot de passe alors qu'il bob
faut obligatoirement entrer un mot de passe (probablement tty_tickets
éteint et bob
entré son mot de passe sur un terminal récemment).
artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty
Si vous souhaitez modifier le paramètre d'une commande avec des arguments spécifiques, vous devez utiliser un alias de commande (limitation de la syntaxe). Par exemple, le fragment suivant permet artbristol
de s'exécuter /path/to/program --option
dans un script, mais pas /path/to/program
avec d'autres arguments.
Cmnd_Alias MYPROGRAM = /path/to/program --option
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty
Quelque chose comme ça:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers
mais ne semble pas fonctionner dans un/etc/sudoers.d/
fichier/etc/sudoers.d/
fichier. CentOS 7.1/etc/sudoers.d/
. CentOS 7.5 :(J'ai trouvé que cela fonctionnait bien pour moi en utilisant un fichier dans
/etc/sudoers.d
. C'est assez simple à vérifier.Tout d'abord, j'ai créé
/etc/sudoers.d/01build
avec le contenu:Puis testé que cela fonctionne:
Ensuite, j'ai modifié
/etc/sudoers.d/01build
et supprimé laDefaults:
ligne, et après cela, j'ai eu:la source