Permissions
sudo 權限被拒絕但 su 授予權限
這是我第一次需要 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 身份執行,所以它成功了