Problème lors de l'exécution de la commande en tant qu'utilisateur différent avec sudo -u


12

Lorsque j'essaie d'exécuter en lstant qu'utilisateur abcavec la commande suivante, j'obtiens une erreur:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Mais si je le fais su abcet que lsje l' exécute, je n'ai aucun problème

Réponses:


17

Vous devez configurer la politique de sécurité sudo pour permettre à l'utilisateur xyz exec quelque chose en tant qu'utilisateur abc. Lisez 'man sudoers' et utilisez la commande visudo pour configurer / etc / sudoers.

Par exemple, autorisons l'utilisateur xyz exec / usr / bin / whoami en tant qu'utilisateur abc sans mot de passe. Ajoutez cette chaîne dans / etc / sudoers (avec visudo, ne modifiez pas directement / etc / sudoers):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

Et maintenant testez-le:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc

cela vous dérange-t-il d'expliquer pourquoi éviter de modifier directement / etc / sudoers?
Adi Prasetyo

Parce que lorsque vous éditez / etc / sudoers directement, vous pouvez faire une erreur, casser le fichier sudoers et (dans le pire des cas) vous bloquer avec l'utilisation de sudo. 'Visudo' n'est pas seulement un éditeur, il vérifie également la syntaxe du fichier sudoers et aide à éviter les erreurs, les fautes de frappe, etc.
svq

4

C'est parce que sudoc'est différent de su. Lorsque vous su abc, vous devenez l'utilisateur abcen ce qui concerne le système. Vous pouvez alors tout abcfaire.

D'autre part, sudoest utilisé pour permettre à d'autres utilisateurs d'exécuter certaines commandes par proxy. En d'autres termes, votre sudoconfiguration vous permet d'effectuer certaines commandes au nom de abc. Si la commande que vous essayez d'exécuter n'en fait pas partie, vous obtenez l'erreur que vous avez signalée.


0

Au cas où tout irait bien, mais vous recevez toujours un Sorry user xxx cannot execute...message et il vous demande toujours un sudomot de passe.

Tu peux le faire:

  1. En /etc/sudoersligne de suppression avec vos paramètres utilisateur
  2. Enregistrer le fichier
  3. Ouvrez le fichier, saisissez (NO COPING) vos options pour cet utilisateur
  4. Enregistrer le fichier
  5. Essayez-le.

Cela a fonctionné pour moi. Il s'est avéré que la fin de cette ligne était mauvaise car j'ai copié des commandes qui devaient être exécutées à partir d'un e-mail.


Sûrement, si vous aviez l'habitude visudode le modifier en premier lieu, on vous aurait dit cela?
Auspex

Non, tu ne le ferais pas.
borbar

Et bien. J'aurais vraiment pensé ... Dans tous les cas, je pense que vous êtes beaucoup plus susceptible d'obtenir des erreurs de frappe manuelle que de copier-coller. Sachez simplement que les fins de ligne diffèrent.
Auspex
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.