Como você poderia preservar a propriedade do arquivo em um backup (/etc)?

Como você poderia preservar a propriedade do arquivo em um backup (/etc)?

Já vi várias fontes sugerirem que pode ser útil fazer backup de arquivos /etc. Por exemplo, a apresentação "Suportando máquinas Debian para amigos e familiares".

Para qualquer backup sério, também precisamos de um processo de restauração bem definido (que podemos testar periodicamente :-).

Como você restaura esses arquivos de sistema,de um backup que inclui informações de propriedade? Dê um exemplo de um processo de restauração funcional. Indique quaisquer suposições feitas. Você pode assumir a ferramenta de backup de sua escolha, por exemplo, tarou etckeeper.


Exemplo de arquivos com proprietários específicos:

$ ls -l|grep -v "root root"
total 2240
-rw-r-----.  1 root brlapi     33 Nov 15 21:32 brlapi.key
-rw-r-----.  1 root chrony    481 Nov 21 11:03 chrony.keys
drwxr-xr-x.  4 root lp       4096 Apr 18 10:58 cups
-rw-------.  1 tss  tss      7046 Feb  5  2016 tcsd.conf

Responder1

A maneira que eu faço é instalaretckeeper. Está bem integrado no Debian e derivados. O Etckeeper se encarrega de lembrar as permissões (mas não os rótulos do SELinux). O backup /etcé então reduzido ao problema bem compreendido de fazer backup de um repositório de controle de versão (por exemplo, git pullde /etc).

Para restaurar o backup:

  1. Execute uma instalação padrão (a mesma instalação padrão da original).
  2. Instale etckeepere o sistema de controle de versão necessário.
  3. Restaure o backup de /etc( git clonee git checkoutou equivalente). Conforme apontado por sourcejedi, você precisa fazer isso antes de instalar qualquer pacote que atribua IDs de usuário ou grupo dinamicamente.
  4. Restaure a lista de pacotes instalados e instale-os. O Etckeeper não acompanha isso; no Debian e derivados, use apt-clone, vejaComo replico as seleções de pacotes instalados de um sistema Debian para outro? (Debian Wheezy)).
  5. Reinício.

Observe que existem algumas coisas que podem não funcionar se o hardware não for exatamente o mesmo ou se o sistema de arquivos tiver sido reformatado, o que tende a acontecer quando você está restaurando um backup. Para fazer a restauração funcionar de maneira mais integrada, certifique-se de não usar identificadores de hardware exclusivos em qualquer lugar da sua configuração (por exemplo, endereço MAC, número de série do disco) ou identidades aleatórias (por exemplo, usar rótulos de sistema de arquivos, e não UUIDs de sistema de arquivos ou partição).

Responder2

Esta resposta é uma lista de verificação de alguns problemas que precisariam ser testados, não tendo sido mencionados em nenhum outro lugar. Agora posso desconsiderar as menções de "backup" /etc, que também não detalham como restaurá-lo. Não testei para ver se esta lista de verificação está completa.

As etapas a seguir também ignoram as alterações frequentes sensíveis à versão e outras alterações que vejo no etckeeper durante as atualizações de pacotes, conforme não mencionado especificamente na pergunta. Pelo menos provavelmente existem sistemas mais simples onde isso não é um problema, como roteadores executando OpenWrt.

  1. Suposição: este backup inclui especificamente arquivos /etc.
  2. Suposição: você também sabe como lidar com quaisquer referências a sistemas de arquivos, por exemplo, que possam ter sido recriados com um UUID diferente, no /etc/fstab.
  3. Suposição: o sistema alvo não inclui nenhumextrausuários, quando comparado ao backup. Por exemplo, é uma nova instalação do sistema operacional, seu usuário inicial é criado com o mesmo nome (e UID) e nenhum serviço adicional foi adicionado ao sistema operacional durante uma atualização. Isso provavelmente é verdade em uma versão estável do Debian, mas certamente não é confiável para uma distribuição de lançamento contínuo.
  4. Suposição: o processo de instalação é totalmente determinístico em relação aos UIDs atribuídos (ordem de instalação do pacote),eisso não é afetado por novas atualizações nos repositórios. Acredito que os gerenciadores de pacotes usuais são determinísticos. Novamente, o Debian estável é provavelmente confiável, um lançamento contínuo não é, e entre eles existe uma área de incerteza. Você também pode executar exatamente a mesma versão do instalador, sem acesso aos repositórios de atualização (tanto durante a restauraçãoequando você instalou o sistema original).
  5. Você já deve ter instalado as ferramentas de restauração do seu backup :).
  6. As etapas abaixo também assumem os arquivos de senha shadow tradicionais do Linux. Os sistemas BSD usam nomes de arquivos diferentes. Alguns sistemas Linux para fins especiais introduziram umestilo significativamente diferente.
  7. Certifique-se de poder inicializar em algum "modo de recuperação", sem usar nenhuma senha definida em/etc , e de que não precisa de nada mais complexo para acessar o backup. Estamos brincando com fogo aqui. Não sei como a criptografia de disco lidará com isso, embora usar a mesma senha do backup possa ajudar. Observe que as etapas abaixo não funcionarão se executadas a partir de um "resgate" separadosistema".
  8. mv /etc/ /etc.installer # can be removed later
  9. mkdir /etc && chmod 755 /etc
  10. ID_FILES=passwd group shadow
  11. for i in $ID_FILES; do cp /etc.installer/${i} /etc; done
  12. Agora, para cada arquivo ino $ID_FILES, você pode restaurar /etc/${i}do backup para o sistema de destino.
  13. Agora você pode restaurartodosos arquivos, incluindo suas informações de propriedade.
  14. Agora você podereaplicar rótulos SELinuxou equivalente, se necessário.

Se o backup for um repositório etckeeper (e nenhum arquivo adicional), a etapa 12 é copiá-lo/cloná-lo /etce executá-lo etckeeper init. Você provavelmente poderia pular as etapas 10 a 12.

OpenWrt

O backup/restauração da configuração do sistema é suportado em roteadores OpenWrt, com um recurso específico na interface web.

No meu sistema OpenWrt 15.05.1, vejo que os únicos usuários que possuem arquivos em /etc(ou em qualquer outro lugar) são roote nobody. Deve ser seguro assumir que uma nova instalação do OpenWrt já inclui esses usuários.

Não sei se as configurações do OpenWrt que adicionaram usuários extras seriam tratadas corretamente por esta ferramenta.

informação relacionada