Então, eu tenho um MacBook, executando o macOS Catalina (que é compatível com Unix baseado em BSD).
Estou comprando um novo Mac e quero copiar muitas fotos e outros bits (como chaves GPG, chaves SSH, etc) para um disco rígido externo e, quando minha nova máquina chegar, copie os arquivos para o mesmo máquina.
Atualmente os arquivos estão assim:
.rw-r--r-- 1 312 john staff 13 Dec 2019 gpg.keys
Se eu copiar isso para um disco externo com cp -a
(o que é efetivamente cp -pPR
), e depois para o novo MacBook (para a mesma pasta pessoal com o mesmo nome, supondo que eu configure um john
usuário na minha nova máquina), tudo ficará bem com as permissões , ou os dois john
usuários seriam 'incompatíveis' do ponto de vista de permissões.
Talvez eu esteja complicando demais, mas quero garantir que os arquivos tenham as permissões corretas ...
Talvez mais uma ilustração, se eu copiar um arquivo com permissões John
de uma máquina local para uma unidade FAT32 externa e, em seguida, de volta para um usuário Dave
em uma nova máquina, como cp
lidar com isso?
Você pode fazer isso. Ambas as contas John precisam do mesmo UID. Procure o UID na máquina antiga (em /etc/passwd 1º campo com números após john) e então configure o novo computador com john e o mesmo UID. Digamos que descobrimos que John tinha o uid 1234 no computador antigo. para adicionar o usuário john com ID 1234 ao novo computador
A outra coisa que você pode fazer para não precisar corresponder aos UIDs é quando os arquivos chegam ao novo computador como root faz um chown recursivo para definir o proprietário dos arquivos para o novo john. Então você não terá que combinar o UID nos dois computadores.
Qualquer um dos métodos funcionará e fornecerá os mesmos resultados.
Sobre sua 2ª pergunta. Quando você copia (cp) um arquivo, o proprietário é alterado para o usuário que o copiou. Se você mover (mv) um arquivo, os atributos e o proprietário permanecem os mesmos. então, para responder sua pergunta, se você copiou o arquivo como dave, ele terá o proprietário dave. Se você mover o arquivo, ele manterá o proprietário original john.
se você copiar arquivos como root, o root será o proprietário deles.
Observe que o UID é o que controla a propriedade do arquivo. para testar você pode fazer