Chmod
root不能chmod?
在我的部門,我們有一個帶有 CentOS 和 samba 的小型文件伺服器。我具有 root 訪問權限,能夠執行一些基本維護。
今天我將一些文件夾設置為只讀,所以我繼續做了一個
chmod -R -w some-folder/
,但對於一些文件,我得到了響應:chmod: ./somefile.pdf: 新權限是 r-xrwxr-x,而不是 r-xr-xr-x
添加後
-v
我沒有得到很多資訊:`./somefile.pdf’ 的模式保留為 0575 (r-xrwxr-x)
我嘗試了以下方法以確保:
# touch test-file # chmod -v -R -w . mode of `./somefile.pdf' retained as 0575 (r-xrwxr-x) chmod: ./somefile.pdf: new permissions are r-xrwxr-x, not r-xr-xr-x mode of `./test-file' changed to 0444 (r--r--r--)
我想不出為什麼 root 不能執行 chmod 的任何充分理由?
一些花絮:
- 文件系統不是 只讀的(只有一些文件拒絕被 chmodded)。
- 我以 root 身份執行 chmod 命令,但沒有任何效果。
- 文件所在的分區是 ext4。
更新:這是
lsattr
文件和包含文件夾的輸出:# lsattr somefile.pdf -------------e- somefile.pdf # lsattr .. -------------e- ../myfolder
不存在 setuid (
ls -la
):dr-xr-xr-x 2 userxyz abc 4096 May 30 09:29 . dr-xr-xr-x 17 userxyz abc 4096 Sep 19 2013 .. -r-xrwxr-x 1 userxyz abc 275150 Aug 6 2013 somefile.pdf
根據消息來源,你有一個天真的預期模式。在放棄更多之後,我認為原因是
-w
選擇,這不是您所期望的。你應該給g-w
或ugo-w
(根據你的需要)。根據 umask 值,如果不給出明確的目標 (a, o, g, u),可能會提供一些意想不到的結果。我認為這樣的額外資訊是由於這種意想不到的變化而完成的。
編輯:http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/chmod.c#n301中的來源
取自Google記憶體,該程式碼中的註釋不再存在:
/* 如果為真,則診斷來自諸如“chmod -r 文件”之類的幼稚誤用的意外。POSIX 允許在此處進行診斷,因為應該使用可移植程式碼。“chmod – -r 文件” */