为什么 root 用户可以编辑只读文件,而具有 sudo 访问权限的普通用户不能?

fie*_*lds 9 unix sudo file-permissions

如果您尝试附加到没有写权限的文件(例如,由 root 拥有并具有 0440 权限的 /etc/sudoers 文件),如果您是实际的 root 用户,这将起作用。但是,如果您是另一个使用 sudo 的用户,则会收到权限被拒绝错误。

为什么是这样?这不是因为文件的所有权 - 它也不适用于普通用户拥有的文件。真正的 root 用户似乎拥有比 sudo 授予的更多权限。这样做的理由是什么?有没有办法向使用 sudo 的用户授予此权限?

mat*_*tdm 14

听起来你正在做类似的事情:

sudo echo "blah blah blah de blah" >> /etc/protected_file
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为 sudo 适用于以echoroot 身份运行的命令,但重定向是当前 shell 的一部分,它不是以 root 身份运行。

常见的解决方法有:

sudo bash -c 'echo "blah blah blah de blah" >> /etc/protected_file'
Run Code Online (Sandbox Code Playgroud)

echo "blah blah blah de blah" | sudo tee -a /etc/protected_file
Run Code Online (Sandbox Code Playgroud)