
所以當我查看 /etc/sudoers 檔案的權限時,它是這樣的
-r--r----- 1 root root 705 Nov 2 19:57 /etc/sudoers
現在,這不是意味著它不可寫嗎?那麼 root 使用者如何寫入呢?
答案1
root 使用者始終擁有對任何檔案的完全寫入存取權限,無論其模式為何。
也許最好的例子是/etc/shadow
,它是模式 000 但當然可以由 root 修改:
[root@centos7 ~]# ls -pl /etc/shadow
----------. 1 root root 1353 Oct 26 07:40 /etc/shadow
答案2
正如評論中所述,最初的答案有點不清楚。
文件的擁有者始終可以更改他所擁有的任何文件的權限(而 root 可以對所有現有文件執行此操作)。
如果您是普通用戶,這取決於您嘗試修改唯讀檔案的方式:
- 使用 vi 開啟檔案並更改它 -> 您可以使用“:w!”寫入更改
- 嘗試 #echo "test" >> 只讀文件,權限被拒絕。
如果您是 root 用戶,您可以覆寫和更改任何您想要的文件,但程式 vi 會考慮唯讀權限並要求確認。
檔案 /etc/sudoers 應始終透過「visudo」命令進行更改,該命令會在臨時檔案中開啟實際檔案的內容,並在儲存變更之前進行一些檢查。作為 root 用戶,儘管具有唯讀權限,仍可以寫入更改。
答案3
嘗試使用 visudo 而不是 vi
sudo visudo