Unix

為什麼 root 使用者可以編輯只讀文件,而具有 sudo 訪問權限的普通使用者卻不能?

  • December 16, 2010

如果您嘗試附加到沒有寫入權限的文件(例如,root 擁有並具有 0440 權限的 /etc/sudoers 文件),如果您是實際的 root 使用者,則此方法有效。但是,如果您是使用 sudo 的其他使用者,則會收到權限被拒絕錯誤。

為什麼是這樣?這不是因為文件的所有權 - 它也不適用於普通使用者擁有的文件。真正的 root 使用者似乎擁有比 sudo 授予的更多權限。這樣做的理由是什麼?有沒有辦法向使用 sudo 的使用者授予此權限?

聽起來你正在做類似的事情:

sudo echo "blah blah blah de blah" >> /etc/protected_file

這不起作用,因為 sudo 適用於以echoroot 身份執行的命令,但重定向是目前 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

注意:您應該使用“visudo”來編輯 sudoers 文件,因為它會在您送出之前檢查文件中的語法錯誤,以防止您將自己鎖定。

引用自:https://serverfault.com/questions/213347