다음을 목격하십시오.
sh-3.2$ mkdir testcase
sh-3.2$ cd testcase
sh-3.2$ sudo touch temp
sh-3.2$ ls -al
total 0
drwxr-xr-x 3 glen staff 102 19 Dec 12:38 .
drwxr-xr-x 12 glen staff 408 19 Dec 12:38 ..
-rw-r--r-- 1 root staff 0 19 Dec 12:38 temp
sh-3.2$ echo nope > temp
sh: temp: Permission denied
sh-3.2$ vim temp
# inside vim
itheivery
# press [ESC]
:wq!
# vim exits
sh-3.2$ ls -al
total 8
drwxr-xr-x 3 glen staff 102 19 Dec 12:38 .
drwxr-xr-x 12 glen staff 408 19 Dec 12:38 ..
-rw-r--r-- 1 glen staff 7 19 Dec 12:38 temp
어떻게 든 vim은이 루트 소유 파일을 가져 와서 사용자 소유 파일로 변경했습니다!
이것은 사용자가 디렉토리를 소유 한 경우에만 작동하는 것처럼 보이지만 여전히 가능하지 않은 것처럼 느낍니다. 누구든지 이것이 어떻게 수행되는지 설명 할 수 있습니까?
ls -il
이전과 이후 에 실행 하여이 문제가 발생했는지 확인할 수 있습니다 ...temp
inode 번호가 변경된 경우 동일한 이름의 다른 파일임을 알 수 있습니다.