Não é possível preservar a propriedade em uma cópia, mas capaz com um movimento?

2

Tenho notado que não consigo preservar a propriedade se eu rsync -o arquivos. No entanto, sou quando os movo. Isso tudo é sem privilégios de administrador. Qual é a razão disso? Vários tópicos, por ex. ( 1 parece ecoar a necessidade de privilégios de administrador

    
por Amelio Vazquez-Reina 10.04.2013 / 01:18

1 resposta

1

Quando você move um arquivo dentro do mesmo sistema de arquivos, isso desanexa o arquivo do local original e o anexa ao novo local. Os dados do arquivo não são alterados, e os metadados do arquivo - o inode - também permanecem inalterados. Assim, o arquivo retém sua propriedade, permissões, horários e qualquer outro atributo: apenas seu nome e as mudanças no diretório (e também o tempo de alteração do inode (ctime)).

Quando você copia um arquivo (com rsync ou qualquer outro utilitário), isso cria um novo arquivo com o mesmo conteúdo, pertencente a você, com sua hora de modificação definida para a data em que a cópia foi concluída. Dependendo do utilitário de cópia, pode adicionalmente copiar alguns dos metadados do arquivo do original, por ex. o usuário proprietário com rsync -o .

Mover um inode requer apenas permissão de gravação no diretório de origem (para desanexá-lo) e no diretório de destino (para reconectá-lo). Não requer que você possua o arquivo ou mesmo possa lê-lo ou escrevê-lo. Por outro lado, não é possível criar um arquivo que pertença a outro usuário ou doar um arquivo para outro usuário (exceto programas rodando como root). Portanto, copiar um arquivo como não raiz não pode preservar a propriedade (a menos que o usuário que fez a cópia possua o arquivo original).

    
por 10.04.2013 / 02:11