Ubuntu Linux: Copiando permissões de arquivo / pasta de uma máquina para outra

1

Eu tenho a tarefa de transferir uma grande instalação de milhares de arquivos para um servidor diferente. Sendo nativa do Windows, eu simplesmente baixei os arquivos para o meu pc e os coloquei de volta no FTP.

No entanto, percebo agora que as permissões estão todas incorretas e não posso simplesmente fazer cada arquivo, um por um.

Existe alguma maneira de sincronizar / copiar permissões de arquivos? Não tenho certeza se os usuários / grupos devem ser configurados da mesma forma? A partir da aparência, eu simplesmente preciso que as permissões numéricas estejam corretas.

Eles são servidores completamente separados, e os arquivos / pastas serão idênticos. O Ubuntu 12.04 é o sistema operacional no "novo" servidor.

    
por harley_woop 09.02.2016 / 12:39

3 respostas

1

Você provavelmente deseja usar rsync . Para que isso funcione, você precisa instalá-lo em ambas máquinas (se ainda não estiver instalado). Depois disso, simplesmente execute (como root):

rsync -avrHP root@source-host:/path/to/source-directory/ /path/to/destination

isso pressupõe que:

  • Você executa o comando no host de destino. Se você quiser executá-lo no host de origem, basta remover a parte root@source-host: do primeiro argumento e adicionar um argumento root@destination-host: ao segundo. Nota: não é possível executar o rsync com dois hosts remotos; apenas uma das extremidades pode ser um final "remoto".
  • Fazer login em ssh como root é possível. A coisa comum a fazer nos dias de hoje é desabilitar esse acesso, por motivos de segurança. No entanto, para que o rsync possa realmente copiar as permissões, ele precisa ser executado como root nas duas extremidades. Se estiver desativado, confira /etc/ssh/sshd_config , procurando por PermitRootLogin . Se estiver definido como no , mude para yes e reinicie sshd . Não se esqueça de desativá-lo novamente depois de copiar os arquivos!
  • Todos os usuários que possuem propriedade em arquivos no host de origem existem no host de destino. Caso contrário, alguns bits de permissão podem ser copiados incorretamente.

Note que você não precisa remover seus arquivos já copiados primeiro. O Rsync detectará que os arquivos existem, mas sincronizará as permissões. Se houver alguns arquivos que foram alterados desde que foram copiados, o rsync também sincronizará seu conteúdo.

    
por 09.02.2016 / 13:12
1

No Linux, você pode fazer backup e restaurar a propriedade e as permissões (incluindo listas de controle de acesso, mas não os contextos do SELinux) com as ferramentas de ACL . Execute getfacl -R > permissions.txt no diretório de nível superior na máquina com o permissões corretas. Copie o arquivo de saída para a máquina de destino e execute setfacl --restore=permissions.txt no destino de nível superior diretório.

Se você precisar copiar a propriedade e as permissões, será necessário fazer a restauração como raiz.

    
por 11.02.2016 / 00:42
0

Executar como root rsync -og talvez seja isso o que você está procurando.

Da página de manual:

-o, --owner
              This option causes rsync to set the owner of the destination file to be the same as the source file, but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super options).  Without this option,  the  owner  of
              new and/or transferred files are set to the invoking user on the receiving side.

              The preservation of ownership will associate matching names by default, but may fall back to using the ID number in some circumstances (see also the --numeric-ids option for a full discussion).

       -g, --group
              This option causes rsync to set the group of the destination file to be the same as the source file.  If the receiving program is not running as the super-user (or if --no-super was specified), only groups that the invoking user on the receiving side
              is a member of will be preserved.  Without this option, the group is set to the default group of the invoking user on the receiving side.

              The preservation of group information will associate matching names by default, but may fall back to using the ID number in some circumstances (see also the --numeric-ids option for a full discussion).
    
por 09.02.2016 / 13:09