1. 程式人生 > >強制編輯文件,文件屬主和屬組自動改變

強制編輯文件,文件屬主和屬組自動改變

終端 查看 解答 修改 file 目錄 退出 解決 權限

今天研究文件權限的時候發現了下面一個奇怪的問題,問題如下:

為什麽對文件的權限是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這個創建的這個文件,所以文件的屬主和屬組會改變

總結:
想問題不要那麽的片面,為什麽學習權限的時候一定要從權限方面查找所有出現的問題呢?學會全局掌控。

強制編輯文件,文件屬主和屬組自動改變