No se puede sincronizar con un destino en/etc.

No se puede sincronizar con un destino en/etc.

Después de una actualización de Debian 10 a 11, un trabajo rsync con algún destino en/etc ya no funciona.

Del lado del servidor (destino) tengo esto:

uid = root
gid = root

hosts allow = mysender

[mymodule]
  # NOGO
  path = /etc/tmp

  # GO
  # path = /root/tmp

  comment = Just for testing
  read only = false

En el lado del cliente (fuente) ingreso este comando:

rsync -a /etc/temp/test myserver::mymodule

Lo que hace que rsync falle con este mensaje:

rsync: [generator] recv_generator: mkdir "/test" (in mymodule) failed: Read-only file system (30)
*** Skipping any contents from this failed directory ***
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1333) [sender=3.2.3]

Configurar el servidor para usar una ruta fuera de /etc (por ejemplo /root/tmp) funciona como se esperaba.

El sistema de archivos raíz (que también contiene el directorio /etc) esnomontado como de solo lectura, por supuesto, y está limpio. Entonces, ¿por qué rsyncd considera que /etc es parte de un sistema de archivos de solo lectura?

Respuesta1

rsync Versión 3.2.0-1 introdujo una mejora llamada "ProtectSystem" que evita, entre otras cosas, el acceso de escritura a /etc(verhttps://download.samba.org/pub/rsync/NOTICIAS). Esto se puede anular creando un archivo /etc/systemd/system/rsync.service.d/override.confcon el siguiente contenido:

[Service]
ProtectSystem=off

Espero que eso ayude mucho tiempo después de tu publicación inicial.

información relacionada