我试图限制特定用户可以在 sudoers 文件中执行的命令,比如说我有这样的命令:
dummy myserver=(ALL:ALL) /usr/sbin/reboot,/usr/sbin/shutdown
我的虚拟用户只允许重启或关闭系统。我故意允许虚拟用户冒充其他用户,但每次我尝试使用 sudo 的 -u 选项时,例如sudo -u anotheruser whoami
我收到以下错误:
Sorry, user dummy is not allowed to execute '/usr/bin/whoami' as anotheruser on myserver.
我知道我可以在 sudoers 中明确地调出我想要模拟的用户和组,但我很好奇为什么 ALL:ALL 不起作用
我将非常感谢您的回答。
答案1
确实(ALL:ALL)
有效,dummy
只是不允许你的用户执行whoami
。你应该将其添加/usr/bin/whoami
到允许的命令列表中。你当前的规则规定dummy
可以执行/usr/sbin/reboot
或/usr/sbin/poweroff
作为任何用户和任何组。您可以致电sudo -u anotheruser /usr/sbin/reboot
,系统重启失败与须藤。
此外,您的系统上可能没有/usr/sbin/reboot
和/usr/sbin/poweroff
可执行文件。这些是必需的命令,因此它们应该位于中/sbin
。
总结:你的/etc/sudoers
文件应该包含如下一行:
dummy myserver=(ALL:ALL) /sbin/reboot, /sbin/poweroff, /usr/bin/whoami