Lorsque j'essaie d'exécuter ls
en tant qu'utilisateur abc
avec 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 abc
puis exécutez ls
je n'ai aucun problème
Vous devez configurer la politique de sécurité de 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
En effet, Sudo
est différent de su
. Quand vous su abc
, vous devenez l'utilisateur abc
en ce qui concerne le système. Vous pouvez alors faire tout ce que abc
peut faire.
D'un autre côté, Sudo
est utilisé pour permettre à d'autres utilisateurs d'exécuter certaines commandes par proxy. En d'autres termes, votre configuration Sudo
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.
Au cas où tout irait bien, mais vous obtenez toujours Sorry user xxx cannot execute...
message et il vous demande toujours un mot de passe Sudo
à chaque fois.
Tu peux le faire:
/etc/sudoers
supprimer la ligne avec vos paramètres utilisateurCela 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.