强制编辑文件,文件属主和属组自动改变

今天研究文件权限的时候发现了下面一个奇怪的问题,问题如下:

为什么对文件的权限是r--权限
对文件所在目录的权限是rwx权限
我们也能强制保存文件,但是保存之后的文件属主和属主就变了?
猜想:因为我们文件所在目录有rwx权限,说明我们能修改目录block块的内容,
这个时候是文件的属性变化了,难道不是操作inode块的内容吗? inode块更block块有什么关系

[root@shoufu test]# ll -d ../test/
drwxr-xrwx. 2 root root 4096 Aug  6 19:05 ../test/
[root@shoufu test]# touch test.txt
[root@shoufu test]# ll -d test.txt 
-rw-r--r--. 1 root root 0 Aug  6 19:10 test.txt

[zsf@shoufu test]$ ll -d test.txt 
-rw-r--r--. 1 root root 0 Aug  6 19:10 test.txt
[zsf@shoufu test]$ echo "1231" >>test.txt
-bash: test.txt: Permission denied
[zsf@shoufu test]$ vim test.txt   #强制保存
[zsf@shoufu test]$ ll -d test.txt #保存之后发现属主和属组就变了
-rw-r--r--. 1 zsf zsf 36 Aug  6 19:11 test.txt

请教五行哥得以解答:
原因,因为vim创建文件的时候是先生成一个隐藏的文件,然后等到保存的那一个时刻,拿这个隐藏的文件直接替换原文件。

vim file  编辑这个文件,然后不要退出编辑
在另外一个终端上查看这个文件所在的目录下面的隐藏文件
发现.file.swp这么一个文件,
这就是那个临时的隐藏文件

这个时候就得以解决上面那个问题,
因为我们强制保存的时候,相当于那这个隐藏的文件去覆盖以前的文件了,我们又是使用zsf这个用户编辑的,所以现在这个文件就相当于是zsf这个创建的这个文件,所以文件的属主和属组会改变

总结:
想问题不要那么的片面,为什么学习权限的时候一定要从权限方面查找所有出现的问题呢?学会全局掌控。

猜你喜欢

转载自blog.51cto.com/13447608/2155894