상위 디렉터리의 소유자가 동일한 사용자가 아닌 경우 하위 디렉터리의 이름을 바꿀 수 없는 이유는 무엇입니까?

상위 디렉터리의 소유자가 동일한 사용자가 아닌 경우 하위 디렉터리의 이름을 바꿀 수 없는 이유는 무엇입니까?

중복 가능성:
내가 소유한 디렉터리의 이름을 바꿀 수 없습니다.

사용자 A가 디렉터리 X를 소유한 경우 해당 상위 디렉터리를 사용자 B가 소유하고 있으면 이름을 바꿀 수 없는 이유를 이해하려고 합니다. 누구든지 이것을 설명할 수 있나요?

$ls -l ~
drwxr-xr-x 11 root root   4096 Jan 31 09:43 mymedia

~/mymedia$ ls -l
drwxr-xr-x  6 rag rag  4096 Jan 31 08:34 Entertainment

~/mymedia$ mv  Entertainment/ entertainment
mv: cannot move `Entertainment/' to `entertainment': Permission denied

답변1

파일 이름을 바꾸면 파일이 변경되는 것이 아니라 해당 상위 디렉터리가 변경됩니다. 파일 이름은 디렉토리의 항목입니다. 전화번호부를 생각해보면, 전화번호부에서 전화번호와 연관된 이름을 변경하려면 전화선이 아닌 디렉토리를 수정해야 합니다. 이 이름은 이 디렉터리의 전화선에만 연결됩니다. 전화번호는 다른 이름의 다른 디렉토리에 있을 수 있습니다(하드 링크).

그러나 디렉토리 이름을 바꿀 때 주의해야 할 점은 디렉토리에 ..해당 상위 항목(해당 항목)에 대한 참조가 포함되어 있기 때문입니다. 디렉터리를 이동하려면 이전 상위 디렉터리(항목 삭제)와 새 상위 디렉터리(새 항목 추가)에 대한 쓰기 권한을 갖는 것만으로는 충분하지 않으며, 항목을 업데이트하려면 디렉터리 자체에 대한 쓰기 권한도 필요합니다. ..(오래된 것과 새로운 것의 부모가 다른 경우).

관련 정보