file.txt
디렉토리에 어떤 이름의 이름을 딴 파일이 있고 /home/myuser
해당 파일에 대한 권한을 root.root
및 으로 변경했습니다 644
.
-rw-r--r-- 1 root root 1.4K Jan 15 07:09 file.txt
그런 다음 전환하여 myuser
열었습니다 vim
.sudo는 안돼) 편집하고 저장하려고 하면 :wq!
다음과 같은 결과가 나타납니다.
"file.txt" E949: File changed while writing
Press ENTER or type command to continue
그런 다음 Enter를 누르고 다시 Enter를 누르면 :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
액세스 권한이 있는 파일이 변경되는지가 문제입니다.
추신: 1. myuser
sudo 사용자가 되십시오.
파일 저장 후 사용자 권한
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
이 예에서 볼 수 있듯이 파일은 새로운 inode 번호로 다시 생성되었습니다. 사용자와 그룹은 파일을 쓰는 사용자로 설정되었으며, 사용자의 umask
.