나는 이라는 이름의 디렉토리를 dir1
소유하고 root
있으며 권한을 가지고 있습니다 777
. 가 소유하고 권한이 있는 file1
inside 라는 파일이 있습니다 . 이름이 일반 사용자로 로그인되어 있습니다 .dir1
root
644
user1
vim에서 편집 하면 file1
읽기 전용 파일로 선언되고 로 저장할 수 있는 이유는 무엇입니까 wq!
? sudo
나는 내가 들어가지 않으면 쓰기 액세스가 거부되어야 한다고 기대합니다 .
편집 후 의 소유권이 에서 로 file1
변경된 것을 확인했습니다 . 또한 권한을 으로 변경 하면 기대가 충족된다는 점도 확인했습니다 . 즉, 쓰기 액세스가 거부되었습니다.root
user1
dir1
775
답변1
이는 dir1
모든 사용자에게 쓰기 권한이 제공되기 때문에 발생합니다. 권한이 있으면 777
누구나 디렉터리를 보고 콘텐츠를 생성/삭제할 수 있습니다.
이제 기준은 wq!
vim을 사용하면 vim을 삭제 file1
하고 새로운 권한 집합으로 다시 생성하여 user1
쓰기 액세스를 허용한다는 것입니다. 이는 user1
내부적으로 파일을 삭제하고 생성하는 기능 때문에 가능합니다.dir1
# at beginning
$ ls -li file1
# after vim wq!
$ ls -li file1
그러나 dir1의 권한을 로 변경하면 더 이상 에서 파일 생성/삭제를 775
허용하지 않습니다 . 따라서 vim은 원본 파일을 삭제 하고 다시 만들 수 없습니다.user1
dir1
file1