J'ai deux utilisateurs sur mon système: itsadok
, mon utilisateur principal, et elasticsearch
, un utilisateur avec un ulimit différent pour exécuter ElasticSearch.
Je voudrais pouvoir exécuter des choses en tant qu'utilisateur secondaire sans être invité à entrer un mot de passe à chaque fois.
J'ai ajouté la ligne suivante à /etc/sudoers
:
itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL
Si je comprends bien, cela devrait permettre à itsadok de l’utilisateur, sur n’importe quel hôte, d’exécuter n’importe quelle commande en tant que (utilisateur ou groupe) elasticsearch sans mot de passe. Cependant, essayer quelque chose comme
itsadok@dev001$ Sudo -u elasticsearch ls
me demande un mot de passe. Redémarrer la machine n'a pas aidé.
Qu'est-ce que je fais mal?
UPDATE:
Cela signifie que l’ordre des lignes dans sudoers
est significatif. J'ai placé la ligne sous "Spécification de privilège d'utilisateur", ce qui semblait être le bon endroit, mais la ligne du groupe %admin
qui vient plus tard annulait le paramètre.
Mettre la même ligne à la fin du fichier sudoers a résolu le problème.
Réponse révisée à partir de commentaires: Si vous placez des directives sous #includedir
, elles sont ignorées. Déplacez la ligne en regard de la définition du groupe Sudo
ou admin
group ou placez-la dans un fichier séparé dans /etc/sudoers.d/
.
Suivez ces étapes:
Sudo visudo -f /etc/sudoers
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
esc :wq!