如果您尝试附加到没有写入权限的
文件(例如,/ etc / sudoers
文件由root拥有并具有0440权限),如果您是实际的root
用户,则此
方法有效.但是,如果您是另一个使用sudo的
用户,则会收到权限被拒绝
错误.
为什么是这样?这不是因为文件的所有权 – 它也不适用于普通用户拥有的文件.真正的root用户似乎拥有比使用sudo授予的权限更多的权限.这是什么理由?有没有办法将这个权限授予使用sudo的用户?
听起来像你在做的事情:
sudo echo "blah blah blah de blah" >> /etc/protected_file
这不起作用,因为sudo适用于echo命令,它很高兴地以root身份运行,但重定向是当前shell的一部分,它不是以root身份运行的.
常见解决方案是:
sudo bash -c 'echo "blah blah blah de blah" >> /etc/protected_file'
和
echo "blah blah blah de blah" | sudo tee -a /etc/protected_file