rsync @ERROR setgroup 失敗

rsync @ERROR setgroup 失敗

我在 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

我找到了解決方案。問題就在這裡。由於我正在與另一個用戶(而不是 root 用戶)一起運行rsync daemon,因此我需要提供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

希望這對將來的人有幫助。

相關內容