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
제공해야 했습니다 .rsync
setcap cap_net_bind_service,cap_setgid=+ep /usr/bin/rsync
cap_net_bind_service
- 데몬이 시스템 포트에 바인딩할 수 있도록 하기 위해 필요합니다(1024보다 낮고 rsync가 바인딩되는 기본 포트는 873입니다).cap_setgid
- 이것이 오류의 원인입니다setgroups failed
.
이것이 미래에 누군가에게 도움이 되기를 바랍니다.