O primeiro parágrafo dificilmente faz sentido, mas a sua pergunta atual:
Can I recover and set up file permissions and ownerships using another server as a reference/template?
A resposta curta é: talvez ...
A resposta mais longa é que essa estratégia falhará em todos os arquivos que não existem nos dois servidores. E, no que diz respeito ao script, você precisará ter um cuidado especial com arquivos especiais, links (simbólicos), caracteres especiais em nomes de arquivos / diretórios, etc. etc.
Mas os comandos chmod
e chown
suportam um sinal --reference
. Você pode apontar para um arquivo existente e chmod
usará as permissões desse arquivo em vez de precisar fornecer valores de MODE ao alterar o modo de arquivo.
Da mesma forma, chown
usará o proprietário e o grupo desse arquivo / diretório de referência em vez de especificar os valores de OWNER: GROUP.
O exercício é então:
- Torne a origem, as árvores de diretório de referência necessárias como modelo no servidor de destino. (Se você tiver espaço vazio suficiente, simplesmente copie o diretório de origem enquanto preserva as propriedades e as configurações de modo, ou use como alternativa o NFS para exportar a árvore de diretórios de origem e montá-las como modelo.)
- Em seguida, execute esses comandos
find
brutos que executamchown
echmod
:
( Por favor, note que estes são apenas conceituais e não testados. Por favor, adicione restrições para find
para apenas localizar arquivos e diretórios, por exemplo, e omitir o seguinte links simbólicos e tal ... )
Para redefinir propriedades e modos em um /etc/
corrompido:
cd /template/etc
find . -exec chmod -v --reference='{}' /etc/'{}' \;
find . -exec chown -v --reference='{}' /etc/'{}' \;