web-dev-qa-db-fra.com

Activer Sudo sans mot de passe en tant qu'utilisateur spécifique

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.

26
itsadok

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 admingroup ou placez-la dans un fichier séparé dans /etc/sudoers.d/.

12
Tuminoid

Suivez ces étapes:

  1. Editez le fichier sudoers (cela peut être présent dans /etc/sudoers.d/nom_fichier)
Sudo visudo -f /etc/sudoers
  1. Ajouter une ligne à la fin du fichier
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
  1. Enregistrer le fichier
esc :wq!
16
jatashankar shukla