Permissions

sudo 權限被拒絕但 su 授予權限

  • October 8, 2013

這是我第一次需要 su 。

我閱讀了一篇關於更改 /sys/devices/virtual/backlight/acpi_video0/brightness 中的值以更改筆記型電腦螢幕亮度的文章。

我首先註意到我什麼時候$ sudo echo 10 > brightness會被拒絕許可。

我使用 su 切換到 root 並# echo 10 > brightness幾乎立即改變了我的亮度。

最後一件奇怪的事情發生在我嘗試時# echo 20 > brightness(maxbrightness 文件的值是 15),我得到了一個寫入錯誤

有人可以向我解釋一下 sudo 和 su 之間的區別嗎?了解寫入錯誤將是一個額外的好處。任何幫助、指針和/或連結將不勝感激。

重定向不是這樣工作的。附加>到命令將以呼叫使用者(您)而不是 root 身份執行該重定向。這樣做tee

echo 20 | sudo tee /sys/devices/virtual/backlight/acpi_video0/brightness

或通過在單獨的特權 shell 中呼叫命令:

sudo bash -c "echo 20 > /sys/devices/virtual/backlight/acpi_video0/brightness"

這不是因為sudo,而是因為您的命令的處理方式;我實際上在這個問題中解釋了它。當你這樣做

$ sudo echo 10 > brightness

shell 執行命令sudo echo 10,該命令echo 10以 root 身份執行。然後 shell 會嘗試打開brightness,以便將輸出重定向echo 10到其中,但它不能——您的 shell 正在以您的權限執行,而不是 root。在我連結到的問題上發布了一些解決方法作為答案;一個好的是:

$ echo 10 | sudo tee brightness

現在tee是要打開brightness的,因為它以 root 身份執行,所以它成功了

引用自:https://unix.stackexchange.com/questions/6713