Невозможно выполнить rsync в место назначения в /etc

Невозможно выполнить rsync в место назначения в /etc

После обновления с Debian 10 до 11 задание rsync с некоторым местом назначения в /etc больше не работает.

На стороне сервера (назначения) у меня есть это:

uid = root
gid = root

hosts allow = mysender

[mymodule]
  # NOGO
  path = /etc/tmp

  # GO
  # path = /root/tmp

  comment = Just for testing
  read only = false

На стороне клиента (источник) я ввожу следующую команду:

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

Что приводит к сбою rsync с таким сообщением:

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]

Настройка сервера на использование пути за пределами /etc (например, /root/tmp) работает так, как и ожидалось.

Корневая файловая система (которая также содержит каталог /etc) — этонетсмонтировано только для чтения, конечно, и оно чистое. Почему же тогда rsyncd считает /etc частью файловой системы только для чтения?

решение1

rsync версии 3.2.0-1 представил усовершенствование под названием «ProtectSystem», которое предотвращает, среди прочего, доступ к записи /etc(см.https://download.samba.org/pub/rsync/NEWS). Это можно переопределить, создав файл /etc/systemd/system/rsync.service.d/override.confсо следующим содержимым:

[Service]
ProtectSystem=off

Надеюсь, это поможет спустя столько времени после вашего первого поста.

Связанный контент