rsync @ERROR 设置组失败

rsync @ERROR 设置组失败

我在 Ubuntu 服务器上设置了rsync守护进程,并尝试将文件从树莓派机器传输到服务器:

rsync --timeout 10 --progress --password-file ~/rsync.password --append-verify some_file [email protected]::files
@ERROR: setgroups failed
rsync error: error starting client-server protocol (code 5) at main.c(1653) [sender=3.1.1]

我将rsync守护进程配置为以用户身份运行pi,但出现了上述错误。如果我运行守护进程,则root不会显示任何错误,传输正常。

这是我的rsyncd.conf文件:

[files]
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log

path = /some/path   
comment = RSYNC FILES
read only = false
secrets file = /etc/rsyncd.secrets
auth users = pi
uid = pi
gid = pi
use chroot = false

path目录已g+s设置权限-我希望其中的所有文件都继承父目录的组。

有什么想法如何解决此错误吗?

答案1

我找到了解决方案。问题如下。由于我rsync daemon使用另一个用户(不是 root)运行,因此我需要提供rsync以下功能:

setcap cap_net_bind_service,cap_setgid=+ep /usr/bin/rsync

  1. cap_net_bind_service- 这是必需的,以便守护进程可以绑定到系统端口(低于 1024,rsync 绑定的默认端口是 873)
  2. cap_setgid- 这就是导致错误的原因setgroups failed

希望这对将来的某人有所帮助。

相关内容