Linux: Comment permettre à un utilisateur régulier de «su-anotherUser»?

J'ai écrit un script de vérification Nagios qui vérifie si l'utilisateur peeradmin est capable de toucher un fichier dans un support sur le serveur.

L'utilisateur de Nagios est: nagios.

J'ai édité /etc/sudoers et ajouté ces lignes mais aucune n'a fonctionné:

 nagios ALL=NOPASSWD: /bin/su - peeradmin -c /bin/touch nagios ALL=(peeradmin) NOPASSWD: /bin/su nagios ALL=(peeradmin) NOPASSWD: /bin/su - peeradmin 

Mais quand même, connecté en tant qu'utilisateur nagios, je ne suis pas capable d'exécuter n'importe quelle commande en tant qu'utilisateur peeradmin sans avoir été demandé un mot de passe:

 [nagios@hadoop-nn1 ~]$ su - peeradmin -c "ls" Password: 

Qu'est-ce que je fais mal et comment puis-je permettre aux utilisateurs nagios d'exécuter des commandes en tant qu'adjoint utilisateur?

Merci d'avance,

Bien que correct, je pense que la réponse ci-dessus est un peu incomplète.

Pour pouvoir utiliser à la fois touch et ls comme utilisateur Peeradmin, la règle dans le fichier /etc/sudoers devrait ressembler à:

nagios ALL=(peeradmin) NOPASSWD: /bin/ls, /bin/touch

Si vous souhaitez exécuter plus de commandes, ajoutez ces commandes (avec chemin complet) séparées par une virgule.

Une fois que vous faites cela, utilisez les commandes suivantes comme utilisateur nagios:

sudo -u peeradmin touch /path/to/the/mount

ou

sudo -u peeradmin ls

C'est parce que c'est sudo config, et que vous ne lisez pas sudo .

sudo su - peeradmin -c "ls" pourrait fonctionner.

Mais vraiment, devrait penser davantage à utiliser sudo directement s'il s'agit simplement d'exécuter des commandes. par exemple

 sudo -u peeradmin ls 

Pour lequel vous auriez besoin d'un alias:

 nagios ALL=(peeradmin) NOPASSWD: /bin/ls