Linux
使用者可以使用 vim 編輯文件
我有一個以目錄
file.txt
中的一些內容命名的文件/home/myuser
,我將該文件的權限更改為root.root
and644
。-rw-r--r-- 1 root root 1.4K Jan 15 07:09 file.txt
然後我切換到並用(不帶 sudo
myuser
)打開它並嘗試編輯並保存它,我得到如下輸出:vim``:wq!
"file.txt" E949: File changed while writing Press ENTER or type command to continue
然後我按輸入,然後再按一次
:wq!
,輸出是:WARNING: The file has been changed since reading it!!! Do you really want to write to it (y/n)?
我點擊
y
,文件被保存並退出vim
。問題是為什麼順便改變了具有使用者
ROOT
權限和訪問權限的文件?read-only
PS:1.
myuser
是sudo使用者。
- 保存文件後的使用者權限也更改
myuser.myuser
為。
-rw-r--r-- 1 myuser myuser 1.4K Jun 27 18:57 file.txt
由於該文件位於使用者可寫的目錄中,因此使用者有權刪除和重新創建該文件。這或多或少是
vim
當您強制寫入文件時所做的。$ ls -li file 3481899 -r--r--r-- 1 root wheel 6 Jun 27 15:48 file $ vim file $ ls -li file 3481905 -rw-r--r-- 1 myself myself 6 Jun 27 15:49 file
正如您在此範例中看到的,該文件已重新創建並具有新的 inode 編號。使用者和組已設置為寫入文件的使用者,權限已根據使用者的
umask
.