我有一个以目录file.txt
中的一些内容命名的文件/home/myuser
,我将该文件的权限更改为root.root
and 644
。
-rw-r--r-- 1 root root 1.4K Jan 15 07:09 file.txt
然后我切换到并用(不带 sudomyuser
)打开它并尝试编辑并保存它,我得到如下输出: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
当您强制写入文件时所做的。正如您在此示例中看到的,该文件已重新创建并具有新的 inode 编号。用户和组已设置为写入文件的用户,权限已根据用户的
umask
.