Vim이 허가 없이 파일을 작성하고 있습니다.

Vim이 허가 없이 파일을 작성하고 있습니다.
$ ls sess.vim -lh              
-rw-r--r-- 1 root root 11K Feb 26 18:52 sess.vim

나는 이 파일을 모든 사람이 읽을 수 있지만 루트를 제외한 누구도 쓸 수 없도록 하고 싶습니다. 그래서 644권한과 소유권을 root:root.

$ echo "text" >> sess.vim      
zsh: permission denied: sess.vim

좋아 보인다. vim에서 일부 변경을 한 후 실행 :w!(강제 쓰기)을 했더니 파일이 성공적으로 저장되었습니다. 지금:

$ ls sess.vim -lh
-rw-r--r-- 1 MY_USERNAME users 11K Feb 26 19:06 sess.vim

무게..왜? 어떻게?

답변1

vim에서 다음과 같이 사용하십시오 :w!.

echo 'test' > sess.vim.temp
mv sess.vim.temp sess.vim

mv명령은 파일 권한이 아닌 디렉터리 권한에만 관심을 갖습니다. 이는 파일에 쓰는 것이 아니라 디렉터리를 수정하기 때문입니다. 목표를 달성하려면 파일이 있는 디렉터리의 권한도 조정해야 합니다.

답변2

이는 상위 디렉터리의 사용자 및 그룹 소유권이 your-username:your-group-name이기 때문에 작동합니다.

사용자가 디렉토리의 소유자이고 디렉토리에 대한 쓰기 권한이 있는 경우 해당 사용자는 파일 권한에 관계없이 그 안에 포함된 모든 파일을 삭제할 수 있습니다. 나는 vim이 편집한 파일의 링크를 해제(삭제)하고 :wq! 주어진.

관련 정보