mv 파일에는 소스 파일에 대한 쓰기 권한이 없습니다.

mv 파일에는 소스 파일에 대한 쓰기 권한이 없습니다.

나는 내가 소유하지도 않고 쓰기 권한도 없는 파일을 이동할 수 있다는 것을 방금 깨달았습니다. 디렉토리에 대한 쓰기 권한이 있으므로 디렉토리를 이동할 수 있을 것 같습니다. 하지만 이 경우 소스 파일을 보호할 수 있는 방법이 있습니까?

이 파일의 권한은 다음과 같습니다.

cgi-bin> ls -al 

drwxrwxrwx   3 voyager  endeavor     512 Feb  1 10:45 .
drwxrwxrwx   6 voyager  endeavor     512 Feb  1 09:38 ..
-rwxr-xr-x   1 voyager  endeavor   22374 Feb  1 10:45 webvoyage_link.cgi

cgi-bin> whoami
moorc

cgi-bin> groups
lrsn endeavor

cgi-bin> rm webvoyage_link.cgi
rm: webvoyage_link.cgi: override protection 755 (yes/no)? yes

마지막은 나에게 큰 놀라움이었습니다. 접근 권한이 없는 파일을 어떻게 삭제하나요? 분명히 나는 ​​뭔가를 놓치고 있습니다.

답변1

권한 측면에서 move( mv)는 본질적으로 속성을 유지하는 delete()가 뒤따르는 복사본입니다. 1 파일 링크를 해제하거나 삭제한다는 것은 포함된 디렉터리에서 해당 디렉터리 항목을 제거하는 것을 의미합니다. 파일 자체가 아닌 디렉터리에 쓰고 있으므로 파일에 쓰기 권한이 필요하지 않습니다. rm

대부분의 시스템은 디렉터리 고정 비트( chmod +t dir/)의 의미를 지원합니다. 이 비트를 설정하면 파일 소유자만 해당 디렉터리의 파일을 삭제할 수 있습니다. 고정 비트를 켜짐으로 설정하면 링크를 더 이상 취소 할 수 cgi-bin/없습니다 .moorccgi-binvoyager

1 일반적으로 타겟이 소스와 동일한 파일 시스템에 있으면 물리적 복사본이 존재하지 않습니다. 대신 대상 디렉터리의 파일에 대한 새 링크가 만들어지지만 파일 자체는 변경되지 않는다는 동일한 일반 개념이 여전히 적용됩니다.

더 많은 내용을 보려면 다음을 확인하세요.고정 비트를 포함한 파일 및 디렉터리 권한이 시스템 호출에 어떤 영향을 미치는지 설명하는 기사. 추신

제가 정말 좋아했던 기사에서 흥미로운 비유를 발견했습니다.논평통과@JorgWMittag이 사이트에 대한 또 다른 질문입니다.

발췌

이는 실제 "실제" 디렉터리와 동일하게 작동합니다. 따라서 "폴더"가 아닌 "디렉터리"라고 불리는 이유는 예를 들어 완전히 다르게 동작합니다. 내 전화 주소록에서 누군가를 삭제하고 싶을 때, 나는 그 사람 집에 가서 죽이지 않고, 펜을 들고 그 사람 번호에 줄을 그어 지기만 하면 됩니다. IOW: 이 디렉토리에 대한 쓰기 액세스 권한이 필요하지만 액세스할 수 없습니다.

확장하려고 하면 비유가 약간 무너집니다. 파일을 가리키는 디렉터리 항목 수가 0으로 떨어지고 모든 열린 파일 시스템 구현이 자동으로 파일의 디스크 블록을 해제할 때 어떤 일이 발생하는지 설명할 효율적인 방법이 없기 때문입니다. . 손잡이가 닫혀 있습니다.

관련 정보