rsync -o
파일을 제출하면 소유권을 유지할 수 없다는 것을 알았습니다 . 하지만 옮길 때는 그렇게 합니다. 이 모든 것은 관리자 권한이 없습니다. 이에 대한 근거는 무엇입니까? 예를 들어 여러 스레드(1) 관리자 권한의 필요성을 반영하는 것 같습니다.
답변1
동일한 파일 시스템 내에서 파일을 이동하면 파일이 원래 위치에서 분리되어 새 위치에 연결됩니다. 파일 데이터는 변경되지 않고 그대로 유지됩니다. 파일 메타데이터 -인덱스 노드——변화가 없습니다. 따라서 파일은 소유권, 권한, 시간 및 기타 속성을 유지합니다. 이름과 포함된 디렉터리 변경 사항(및 inode 변경 시간(ctime))만 유지됩니다.
파일을 복사하면( rsync
또는 다른 유틸리티를 사용하여) 동일한 내용을 가진 새 파일이 생성되며 수정 시간은 복사가 완료된 날짜로 설정됩니다. 복사 유틸리티에 따라 원본 파일에서 파일 메타데이터 중 일부를 복사할 수도 있습니다 rsync -o
.
inode를 이동하려면 소스 디렉터리(분리)와 대상 디렉터리(다시 연결)에 대한 쓰기 권한만 필요합니다. 파일을 소유하거나 파일을 읽거나 쓸 수 있어야 한다는 요구는 없습니다. 반면에 다른 사용자에게 속한 파일을 만들 수 없거나다른 사용자에게 파일 제공(루트로 실행되는 프로그램 제외) 따라서 루트가 아닌 사용자로 파일을 복사하면 소유권이 유지되지 않습니다(사본을 만드는 사용자가 원본 파일을 소유하지 않는 한).