¿Cómo podrías preservar la propiedad del archivo en una copia de seguridad (/etc)?

¿Cómo podrías preservar la propiedad del archivo en una copia de seguridad (/etc)?

He visto varias fuentes que sugieren que puede ser útil realizar una copia de seguridad /etc. Por ejemplo, la presentación "Soporte para máquinas Debian para amigos y familiares".

Para cualquier copia de seguridad importante, también necesitamos un proceso de restauración bien definido (que podemos probar periódicamente :-).

¿Cómo se restauran estos archivos del sistema?desde una copia de seguridad que incluye información de propiedad? Dé un ejemplo de un proceso de restauración en funcionamiento. Indique cualquier suposición hecha. Puede utilizar la herramienta de copia de seguridad de su elección, por ejemplo taro etckeeper.


Ejemplo de archivos con propietarios 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

Respuesta1

La forma en que lo hago es instalaretc guardián. Está bien integrado en Debian y derivados. Etckeeper se encarga de recordar los permisos (pero no las etiquetas de SELinux). La copia de seguridad /etcse reduce entonces al problema bien entendido de hacer una copia de seguridad de un repositorio de control de versiones (por ejemplo, git pulldesde /etc).

Para restaurar la copia de seguridad:

  1. Realice una instalación predeterminada (la misma instalación predeterminada que la original).
  2. Instale etckeepery el sistema de control de versiones necesario.
  3. Restaurar la copia de seguridad de /etc( git cloney git checkouto equivalente). Como señaló sourcejedi, debe hacer esto antes de instalar cualquier paquete que asigne ID de usuario o grupo dinámicamente.
  4. Restaure la lista de paquetes instalados e instálelos. Etckeeper no realiza un seguimiento de eso; en Debian y derivados, utilice apt-clone, consulte¿Cómo replico selecciones de paquetes instalados de un sistema Debian a otro? (Debian sibilante)).
  5. Reiniciar.

Tenga en cuenta que hay algunas cosas que podrían no funcionar si el hardware no es exactamente el mismo o si el sistema de archivos ha sido reformateado, lo que suele ser el caso cuando se restaura una copia de seguridad. Para que la restauración funcione de manera más fluida, asegúrese de no utilizar identificadores de hardware únicos en ninguna parte de su configuración (por ejemplo, dirección MAC, número de serie del disco) o identidades aleatorias (por ejemplo, use etiquetas de sistema de archivos, no UUID de partición o sistema de archivos).

Respuesta2

Esta respuesta es una lista de verificación de algunos problemas que necesitarían ser probados, ya que no los he visto mencionados en otra parte. Ahora puedo descartar felizmente las menciones de "hacer una copia de seguridad" /etc, que tampoco detallan cómo restaurarla. No he realizado pruebas para ver si esta lista de verificación está completa..

Los siguientes pasos también ignoran los cambios frecuentes relacionados con la versión y otros cambios que veo en etckeeper durante las actualizaciones de paquetes, como no se menciona específicamente en la pregunta. Al menos probablemente haya sistemas más simples en los que eso no sea un problema, como los enrutadores que ejecutan OpenWrt.

  1. Supuesto: esta copia de seguridad incluye específicamente /etc.
  2. Supuesto: también sabes cómo vas a manejar cualquier referencia a sistemas de archivos, por ejemplo, que podrían haber sido recreados con un UUID diferente, en formato /etc/fstab.
  3. Supuesto: el sistema objetivo no incluye ningúnextrausuarios, en comparación con la copia de seguridad. Por ejemplo, se trata de una instalación nueva del sistema operativo, su usuario inicial se crea con el mismo nombre (y UID) y no se han agregado servicios adicionales al sistema operativo durante una actualización. Es probable que esto sea cierto en una versión estable de Debian, pero ciertamente no es confiable para una distribución de lanzamiento continuo.
  4. Supuesto: el proceso de instalación es totalmente determinista con los UID asignados (orden de instalación del paquete),yesto no se ve afectado por ninguna nueva actualización en los repositorios. Creo que los administradores de paquetes habituales son deterministas. Una vez más, Debian estable es probablemente confiable, una versión continua no lo es, y entre ambos existe un área de incertidumbre. También puede ejecutar exactamente la misma versión del instalador, sin acceso a los repositorios de actualización (tanto durante la restauraciónycuando instaló el sistema original).
  5. Ya deberías haber instalado las herramientas de restauración para tu copia de seguridad :).
  6. Los pasos siguientes también asumen los archivos de contraseñas ocultas tradicionales de Linux. Los sistemas BSD utilizan diferentes nombres de archivos. Algunos sistemas Linux de propósito especial han introducido unaestilo significativamente diferente.
  7. Asegúrate de poder iniciar en algún "modo de rescate", sin usar ninguna contraseña definida en /etc, y no necesitas nada más complejo para acceder a la copia de seguridad. Aquí estamos jugando con fuego. No sé cómo manejará esto el cifrado del disco, aunque podría ayudar usar la misma contraseña que la copia de seguridad. Tenga en cuenta que los pasos siguientes no funcionarán si se ejecutan desde un "rescate" independiente.sistema".
  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. Ahora, para cada archivo ien $ID_FILES, puede restaurar /etc/${i}desde su copia de seguridad al sistema de destino.
  13. Ahora puedes restaurartodolos archivos, incluida la información de propiedad.
  14. Ahora usted puedevolver a aplicar etiquetas SELinuxo equivalente, si fuera necesario.

Si la copia de seguridad es un repositorio de etckeeper (y no hay archivos adicionales), entonces el paso 12 es copiarlo/clonarlo /etcy luego ejecutarlo etckeeper init. Probablemente podrías saltarte los pasos 10 a 12.

OpenWrt

La copia de seguridad/restauración de la configuración del sistema es compatible con los enrutadores OpenWrt, con una función específica en la interfaz web.

En mi sistema OpenWrt 15.05.1, veo que los únicos usuarios que poseen archivos /etc(o en cualquier otro lugar) son rooty nobody. Debería ser seguro asumir que una nueva instalación de OpenWrt ya incluye a estos usuarios.

No sé si esta herramienta manejaría correctamente las configuraciones de OpenWrt que han agregado usuarios adicionales.

información relacionada