Eu tenho uma árvore de arquivos com permissão correta. então eu tenho uma árvore idêntica (filewise) (com conteúdo de arquivo diferente) com permissões erradas.
como posso transferir o layout de permissões de uma árvore para outra?
permissions
filesystems
copy
file-permissions
yawniek
fonte
fonte
Acabei de aprender uma maneira nova e simples de fazer isso:
Isso irá gerar uma lista com todas as permissões e propriedades.
Em seguida, vá para um nível acima do destino e restaure as permissões com
A razão pela qual você precisa estar um nível acima é que todos os caminhos no perms.acl são relativos.
Deve ser feito como root.
fonte
getfacl
esetfacl
não está necessariamente presente em todos os sistemas..ac
no primeiro comando e.acl
no segundo?Se você possui a origem e o destino, pode sincronizar suas permissões com
rsync -ar --perms source/ dest
Não irá transferir os dados, apenas permissões ...
fonte
-r
e--perms
são redundantes, mas isso ainda sincroniza permanentemente se forem a única coisa diferente (que foi o que você disse na pergunta; se as árvores não forem realmente idênticas, você não deveria ter dito que eram).Uma coisa que você pode fazer é usar o comando find para criar um script com os comandos necessários para copiar as permissões. Aqui está um exemplo rápido: você poderia fazer muito mais com as várias opções printf, incluindo obter o proprietário, o ID do grupo e assim por diante.
fonte
Dois caminhos:
(no último caso / dst deve existir)
Edit: desculpe, eu interpretei errado. Não é o que você pediu.
fonte
Eu acho que escreveria um script perl para fazer isso. Algo como:
Então faça algo parecido com isto:
Eu escrevi isso em cima da minha cabeça e não foi testado; então verifique-o antes de deixá-lo correr desenfreado. Isso apenas corrige permissões nos diretórios existentes; não altera as permissões nos arquivos, nem cria diretórios ausentes.
fonte
Eu vim com isso:
Não é totalmente à prova de balas, mas faz o que eu preciso.
fonte