내 사용자 아래에 파일을 만든 esolve
다음 su root
chown을 사용하여 해당 사용자를 루트로 변경한 다음 사용자로 돌아갑니다. esolve
여전히 파일을 삭제할 수 있다는 것을 알았습니다 rm
. 이유는 무엇입니까?
답변1
파일 생성, 이름 변경 및 삭제 가능 여부는 파일의 소유권 및 액세스 권한이 아니라 상위 디렉터리의 소유권 및 액세스 권한에 따라 달라집니다.
디렉토리에 대한 쓰기 액세스 권한이 있으면 이를 수행할 수 있습니다(richacl은 일반적인 상황에서 더 복잡합니다). 예외는 평소와 같이 설정된 고정 비트("other"의 "SUID"/"SGID" 비트, 참고자료 참조)가 있는 man chmod
디렉터리 입니다 /tmp
. 이러한 디렉터리에서는 디렉터리 소유자나 파일 소유자만 이 작업을 수행할 수 있으며 쓰기 권한이 있는 다른 사용자는 수행할 수 없습니다.
답변2
파일을 삭제할 수 있기 때문에 파일을 읽을 수 있으면 실제로 "수정 권한"이 있는 것입니다.
foo
"owner"라는 파일이 있고 root
이 파일은 (모든 사람)이 읽을 수 있고 you
"owner" 디렉터리에 있다고 가정합니다.you
-rw-r--r-- 1 root root 4 May 11 12:34 foo
drwxr-xr-x 2 you root 4.0K May 11 12:34 ./
이 파일을 새 파일에 복사합니다.
$ cp foo 바
-rw-r--r-- 1 root root 4 May 11 12:34 foo
-rw-r--r-- 1 you you 4 May 11 12:36 bar
drwxr-xr-x 2 you root 4.0K May 11 12:36 ./
원하는 대로 파일 "바"를 편집하세요.
"bar"를 "foo"로 이동
$ mv 바 foo
-rw-r--r-- 1 you you 4 May 11 12:36 foo
이제 이름은 같지만 소유자는 다른 새 파일이 생겼습니다. 그런데 여기서 포인트는내용이 변경되었습니다
수정 권한은 없지만 이름 바꾸기/이동/RM은 가능합니다. 이 디자인은 정말 견딜 수가 없어요! !