Emacs는 왜 수퍼유저가 허가 없이 파일을 편집하는 것을 방지합니까?

Emacs는 왜 수퍼유저가 허가 없이 파일을 편집하는 것을 방지합니까?

편집하고 싶은 파일이 있으면 루트로서 권한에 관계없이 파일을 수정할 수 있어야 합니다. 그러나 모든 텍스트 편집기, 특히 emacs에서는 그렇지 않은 것 같습니다.

-rw-r--r--, -r--rw-r--, , 루트 권한 등 다음 권한 중 하나가 부여된 텍스트 파일이 있으면 -r--r--rw-문제 없이 파일을 편집할 수 있습니다. 그러나 쓰기 권한이 전혀 없으면( -r--r--r--) emacs루트는 버퍼를 변경할 수 없습니다. Vim도 약간 이상한 방식으로 행동합니다. 처음 세 가지 경우에는 루트가 :w해당 명령을 사용하여 변경 사항을 저장할 수 있지만 마지막 경우에는 루트가 재정의 :w!명령을 사용하여 저장해야 합니다.

둘 다 nano정상적으로 작동하며 gedit항상 수퍼유저에게 쓰기 권한을 제공합니다.

emacsand 의 이 짜증나는 행동의 원인이 무엇인지 아는 사람이 있습니까 vim? 나는 이것이 vim의 행동을 기반으로 한 의도적인 설계라기보다는 무언가의 부작용이라고 생각하는 경향이 있지만 이것이 원인이 될 수 있는 것이 무엇인지 알 수 없습니다.

답변1

vim이것은 사건 에 가깝고 emacs뒤에서 무슨 일이 벌어지고 있는지를 드러내는 것입니다. 파일에 사용 가능한 쓰기 권한이 없으면 파일이 그 자리에서 편집되지 않습니다. 대신 파일이 완전히 대체됩니다(이는 파일 권한이 아닌 디렉터리 권한에 따라 달라지기 때문입니다).

emacsM-x toggle-read-only쓰기 권한 없이 파일을 저장하려면 또는 를 사용할 수 있습니다 C-x C-q. 그러면 변경 사항을 저장할 수 있습니다.

관련 정보