Centos
which 和 sudo 不使用相同的路徑
$ which reboot /usr/bin/reboot $ sudo reboot Sorry, user myusername is not allowed to execute '/sbin/reboot' as root
我在這裡想念什麼?
我認為這與這個問題有關:
https://stackoverflow.com/questions/257616/sudo-changes-path-why
因此 sudo 更改了路徑,但將其原封不動地傳遞給命令。因此它使用 /sbin/reboot 作為重啟命令,但將常用路徑傳遞給 which 命令(因此在 /usr/bin/reboot 中找到 sudo)。
當您以 root 身份執行命令時,sbin 文件夾中的文件的優先級高於路徑中的其他文件夾。這就是 sudo 選擇 /sbin/reboot 的原因。您必須在 sudoers 文件中使用 /sbin/reboot,或者必須顯式呼叫 sudo /usr/bin/reboot