
我試圖限制特定使用者可以在 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