예기치 않은 파일 쓰기 기능 [중복]

예기치 않은 파일 쓰기 기능 [중복]

나는 이라는 이름의 디렉토리를 dir1소유하고 root있으며 권한을 가지고 있습니다 777. 가 소유하고 권한이 있는 file1inside 라는 파일이 있습니다 . 이름이 일반 사용자로 로그인되어 있습니다 .dir1root644user1

vim에서 편집 하면 file1읽기 전용 파일로 선언되고 로 저장할 수 있는 이유는 무엇입니까 wq!? sudo나는 내가 들어가지 않으면 쓰기 액세스가 거부되어야 한다고 기대합니다 .

편집 후 의 소유권이 에서 로 file1변경된 것을 확인했습니다 . 또한 권한을 으로 변경 하면 기대가 충족된다는 점도 확인했습니다 . 즉, 쓰기 액세스가 거부되었습니다.rootuser1dir1775

답변1

이는 dir1모든 사용자에게 쓰기 권한이 제공되기 때문에 발생합니다. 권한이 있으면 777누구나 디렉터리를 보고 콘텐츠를 생성/삭제할 수 있습니다.

이제 기준은 wq!vim을 사용하면 vim을 삭제 file1하고 새로운 권한 집합으로 다시 생성하여 user1쓰기 액세스를 허용한다는 것입니다. 이는 user1내부적으로 파일을 삭제하고 생성하는 기능 때문에 가능합니다.dir1

# at beginning    
$ ls -li file1

# after vim wq!
$ ls -li file1

그러나 dir1의 권한을 로 변경하면 더 이상 에서 파일 생성/삭제를 775허용하지 않습니다 . 따라서 vim은 원본 파일을 삭제 하고 다시 만들 수 없습니다.user1dir1file1

관련 정보