Permissions
無法執行 ‘sudo chmod +w /etc/hosts’
ESXi
我以使用者 xyz的身份登錄到我的遠端 VM(已用完)。我想更改我/etc/hosts
的添加一些預設情況下不可見的網路名稱。我首先嘗試執行
sudo vi /etc/hosts
但是當我進入時
vi
,它仍然告訴我該文件是只讀的。以下是特權:>ls -l /etc/hosts -rw-r--r-- 1 root root 416 2013-06-19 08:08 /etc/hosts
我還注意到幾乎所有其他文件
/etc
都有一個lsattr
,-----------------e-
只有. 例如:hosts``----i------------e-
>lsattr /etc ... -----------------e- ./python ----i------------e- ./hosts ...
然後我嘗試了
chmod
,這就是我得到的:>sudo chmod +w /etc/hosts chmod: changing permissions of `/etc/hosts': Operation not permitted
我認為這很奇怪,因為 root (當我切換到我時
sudo
)應該能夠做任何事情。我的sudoers
文件看起來很普通:1 # /etc/sudoers 2 # 3 # This file MUST be edited with the 'visudo' command as root. 4 # 5 # See the man page for details on how to write a sudoers file. 6 # 7 8 Defaults env_reset 9 10 # Host alias specification 11 12 # User alias specification 13 14 # Cmnd alias specification 15 16 # User privilege specification 17 root ALL=(ALL) ALL 18 19 # Allow members of group sudo to execute any command after they have 20 # provided their password 21 # (Note that later entries override this, so you might need to move 22 # it further down) 23 %sudo ALL=(ALL) ALL 24 # 25 #includedir /etc/sudoers.d 26 27 # Members of the admin group may gain root privileges 28 %admin ALL=(ALL) ALL
我正在尋找解釋為什麼會發生這種情況以及如何解決它。
本期的具體屬性是
i
,不可變屬性。該文件被標記為不可變的。
這意味著任何使用者(包括 root)都無法更改它。root 仍然可以更改屬性並刪除不可變屬性,但必須在更改文件之前首先這樣做,這與 root 可以簡單地忽略的文件的標準無寫權限不同。
這些屬性只適用於 ext
$$ 234 $$據我所知,文件系統。 您可以查看 chattr 的手冊頁,
$man chattr
查看可用屬性的完整列表和描述。
我唯一真正使用過的是i。但其他一些包括:
A: atime remains unmodified when accessed a: can only be opened for writing in append-only mode c: compressed automatically j: all data is written to the journal before being written to the file s: blocks are zeros when file is deleted u: contents of file are saved when file is deleted for later undelete
還有其他屬性,但它們有些深奧,可以在 chattr 手冊頁中找到更多資訊。