使用 sudo -u 以其他用户身份执行命令时出现问题

use*_*312 15 su sudo

当我尝试使用以下命令ls以用户身份执行时,abc出现错误:

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.
Run Code Online (Sandbox Code Playgroud)

但是如果我这样做su abc然后执行ls我没有问题

svq*_*svq 20

您应该配置 sudo 安全策略以允许用户 xyz exec 作为用户 abc 执行某些操作。阅读“man sudoers”并使用 visudo 命令配置 /etc/sudoers。

例如,让我们允许用户 xyz exec /usr/bin/whoami 作为用户 abc 而没有密码。将此字符串添加到 /etc/sudoers(使用 visudo,不要直接编辑 /etc/sudoers):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami
Run Code Online (Sandbox Code Playgroud)

现在测试一下:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc
Run Code Online (Sandbox Code Playgroud)

  • 因为当您直接编辑 /etc/sudoers 时,您可能会犯错误,破坏 sudoers 文件并(在最坏的情况下)使用 sudo 阻止自己。“Visudo”不仅仅是一个编辑器,它还检查 sudoers 文件的语法并有助于避免错误、拼写错误等。 (2认同)