rsync - 在“uid”中使用除 root 之外的其他用户

rsync - 在“uid”中使用除 root 之外的其他用户

我正在尝试在 Synology DS 的 Hyper Backup 中定义一个 RSync 备份作业,以将我的文件从 Synology DS 备份到运行 Ubunut 14.04 的 Linux 服务器。

这是我的 rsync.conf 文件的副本

use chroot = true
read only = false
uid = rsync-user
gid = rsync-user

transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log

[MyBackup]
path = /data/backup
comment = Backup directory
auth users = mysyncuser
secrets file = /etc/rsyncd.secrets

“rsync-user”是Linux服务器上具有登录功能的本地用户:

rsync-user:x:10001:10001::/home/rsync-user:/bin/bash

并且是“/data/backup”的所有者

问题是,一旦我在 Synology DS 中触发备份,服务器就无法在“/data/backup”下创建“BackupFolder”文件夹并显示以下消息:

2016/08/10 17:36:37 [29598] rsync on MyBackup/BackupFolder/synobkpinfo.db from [email protected] (217.250.xxx.xx)
2016/08/10 17:36:37 [29598] building file list
2016/08/10 17:36:37 [29598] rsync: change_dir "/BackupFolder" (in MyBackup) failed: No such file or directory (2)
2016/08/10 19:36:38 [29599] connect from pD9FXXXXX.dip0.t-ipconnect.de (217.250.xxx.xx)
2016/08/10 17:36:38 [29599] rsync on MyBackup/BackupFolder from [email protected] (217.250.xxx.xx)
2016/08/10 17:36:38 [29599] building file list
2016/08/10 17:36:38 [29599] rsync: link_stat "/BackupFolder" (in MyBackup) failed: No such file or directory (2)
2016/08/10 17:36:38 [29599] sent 101 bytes  received 26 bytes  total size 0

如果我将 uid 部分更改为 root,则一切都会正常运行:

uid = root

非常感谢您的帮助。

答案1

您使用 chroot 配置 rsync。用户 rsync-user 的主目录为 /home/rsync-user,并且只能访问该目录(启用 chroot 时)。在用户主目录中将符号链接添加到 /data/backup 目录:

ln -s /data/backup /home/rsync-user/backup

并更改path/home/rsync-user/backup

我认为日志文件 /var/log/rsyncd.log 必须以同样的方式更改。

答案2

这条线看起来不对

2016/08/10 17:36:37 [29598] rsync: change_dir "/BackupFolder" (in MyBackup) failed: No such file or directory (2)

我在您的日志中没有看到任何可能已创建的内容/BackupFolder,但 rsync 确实尝试输入它。我不确定为什么会发生这种情况,但也许您应该调查一下。也许尝试提前创建“BackupFolder”并为其设置适当的所有权。

相关内容