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,

2 Solutions collect form web for “Linux: Comment permettre à un utilisateur régulier de «su-anotherUser»?”

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 
  • Exécution du service avec systemd en tant qu'user par défaut via ansible en ec2 (request le mot de passe)
  • x11vnc via le tunnel SSH - sudo: no tnt présent et aucun programme askpass spécifié
  • Configuration du mot de passe root dans l'instance linux de aws
  • Starting lighttpd from nagios rend lighttpd cassé
  • Bash: php comand non trouvé lorsqu'il est appelé à partir d'un script exécuté avec sudo
  • Quelle est la différence entre "sudo su -" et "sudo -i"?
  • Utilisation d'un non-root pour déployer un repo git sur la racine Web
  • Exécuter une command d'un autre groupe
  • Comment puis-je installer quelque chose à partir de la source et le mettre à la disposition de la racine?
  • SE Linux - ne peut pas changer SELinux booleans avec sudo
  • sudo sourcing user .bashrc sans impact /root/.bashrc ou / etc / bashrc
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.