Que privilégio é necessário para preservar a propriedade de um arquivo copiado e como obtê-lo?

Que privilégio é necessário para preservar a propriedade de um arquivo copiado e como obtê-lo?

Tenho uma pergunta de dever de casa sobre programação de kernel no Linux. A questão é:

Qual privilégio específico do Linux é necessário para preservar a propriedade de um arquivo quando ele é copiado e como obtê-lo?

Por meio de experimentação, descobri que preciso ser rootum superusuário para fazer isso funcionar. Existe uma maneira mais específica de explicar esse efeito?

Responder1

Veja ocapabilities(7)página de manual – você precisa da CAP_CHOWNcapacidade de alterar a propriedade do arquivo via chown(). (Root tem todos os recursos habilitados automaticamente. A página do manual explica como obter recursos em outros casos.)

Não existe um método/capacidade separado para apenaspreservarpropriedade, já que as cópias de arquivos do 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 privilégios e SeBackupPrivilegechamadas / .)SeRestorePrivilegeBackupRead()BackupWrite()

informação relacionada