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.conf
con el siguiente contenido:
[Service]
ProtectSystem=off
Espero que eso ayude mucho tiempo después de tu publicación inicial.