![복사본의 소유권을 유지할 수 없지만 이동할 수는 있습니까?](https://linux55.com/image/30886/%EB%B3%B5%EC%82%AC%EB%B3%B8%EC%9D%98%20%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84%20%EC%9C%A0%EC%A7%80%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%A7%80%EB%A7%8C%20%EC%9D%B4%EB%8F%99%ED%95%A0%20%EC%88%98%EB%8A%94%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
rsync -o
파일을 제출하면 소유권을 유지할 수 없다는 것을 알았습니다 . 하지만 옮길 때는 그렇게 합니다. 이 모든 것은 관리자 권한이 없습니다. 이에 대한 근거는 무엇입니까? 예를 들어 여러 스레드(1) 관리자 권한의 필요성을 반영하는 것 같습니다.
답변1
동일한 파일 시스템 내에서 파일을 이동하면 파일이 원래 위치에서 분리되어 새 위치에 연결됩니다. 파일 데이터는 변경되지 않고 그대로 유지됩니다. 파일 메타데이터 -인덱스 노드——변화가 없습니다. 따라서 파일은 소유권, 권한, 시간 및 기타 속성을 유지합니다. 이름과 포함된 디렉터리 변경 사항(및 inode 변경 시간(ctime))만 유지됩니다.
파일을 복사하면( rsync
또는 다른 유틸리티를 사용하여) 동일한 내용을 가진 새 파일이 생성되며 수정 시간은 복사가 완료된 날짜로 설정됩니다. 복사 유틸리티에 따라 원본 파일에서 파일 메타데이터 중 일부를 복사할 수도 있습니다 rsync -o
.
inode를 이동하려면 소스 디렉터리(분리)와 대상 디렉터리(다시 연결)에 대한 쓰기 권한만 필요합니다. 파일을 소유하거나 파일을 읽거나 쓸 수 있어야 한다는 요구는 없습니다. 반면에 다른 사용자에게 속한 파일을 만들 수 없거나다른 사용자에게 파일 제공(루트로 실행되는 프로그램 제외) 따라서 루트가 아닌 사용자로 파일을 복사하면 소유권이 유지되지 않습니다(사본을 만드는 사용자가 원본 파일을 소유하지 않는 한).