当您尝试在没有写入权限的情况下修改文件时,您会收到错误消息:
> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Run Code Online (Sandbox Code Playgroud)
Sudoing 没有帮助,因为它以 root 身份运行命令,但 shell 处理重定向 stdout 并以您的方式打开文件:
> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Run Code Online (Sandbox Code Playgroud)
除了以root身份打开shell并以这种方式操作文件之外,是否有一种简单的方法可以将stdout重定向到您无权写入的文件?
> sudo su
# echo test > /tmp/foo
Run Code Online (Sandbox Code Playgroud) 这是我第一次需要 su 。
我阅读了一篇关于更改 /sys/devices/virtual/backlight/acpi_video0/brightness 中的值以更改笔记本电脑屏幕亮度的文章。
我第一次注意到,我$ sudo echo 10 > brightness
什么时候会被拒绝许可。
我使用 su 切换到 root 并# echo 10 > brightness
几乎立即改变了我的亮度。
对我来说最后一件奇怪的事情发生在我尝试时# echo 20 > brightness
(maxbrightness 文件的值为 15)并且我收到了一个写错误
有人可以向我解释 sudo 和 su 之间的区别吗?了解写入错误将是一个额外的好处。任何帮助、指针和/或链接将不胜感激。