Veja a capabilities(7) página de manual - você precisa do recurso CAP_CHOWN para alterar a propriedade do arquivo por meio de chown() . (A raiz tem todos os recursos ativados automaticamente. A página de manual explica como obter recursos em outros casos.)
Não há nenhum método / recurso separado para apenas preservar a propriedade, já que as cópias do arquivo Linux são feitas simplesmente lendo / gravando dados no arquivo de destino e fazendo o mesmo com os metadados. (Para comparação, o Windows NT tem SeBackupPrivilege e SeRestorePrivilege privilégios e as BackupRead() / BackupWrite() chamadas.)