用户可以使用 vim 编辑文件

用户可以使用 vim 编辑文件

file.txt我有一个以目录中的某些内容命名的文件/home/myuser,我将该文件的权限更改为root.root644

-rw-r--r-- 1 root root 1.4K Jan 15 07:09 file.txt

然后我切换到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用户。

  1. 保存文件后的用户权限myuser.myuser也更改为。

    -rw-r--r-- 1 myuser myuser 1.4K Jun 27 18:57 file.txt

答案1

由于该文件位于用户可写的目录中,因此用户有权删除和重新创建该文件。这或多或少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

正如您在此示例中所看到的,该文件已被重新创建并具有新的索引节点号。用户和组已设置为写入文件的用户,并且已根据用户的umask.

相关内容