无法 rsync 到 /etc 中的目标

无法 rsync 到 /etc 中的目标

从 Debian 10 升级到 11 后,/etc 中某个目标的 rsync 作业不再起作用。

在服务器(目标)端我有这个:

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

希望这对您在初次发帖后很长时间内有所帮助。

相关内容