사용자는 vim을 사용하여 파일을 편집할 수 있습니다.

사용자는 vim을 사용하여 파일을 편집할 수 있습니다.

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. myusersudo 사용자가 되십시오.

  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

이 예에서 볼 수 있듯이 파일은 새로운 inode 번호로 다시 생성되었습니다. 사용자와 그룹은 파일을 쓰는 사용자로 설정되었으며, 사용자의 umask.

관련 정보