Я настроил rsync
демон на сервере Ubuntu и я пытаюсь передать файл с машины пи малины на сервер:
rsync --timeout 10 --progress --password-file ~/rsync.password --append-verify some_file pi@test.ddns.net::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
dir имеет g+s
набор полномочий на нем - я хочу, чтобы все файлы в нем наследовали группу родительского каталога.
Какие-либо идеи, как разрешить эту ошибку?
Я нашел решение. Вот проблема. Так как я работаю rsync daemon
с другим пользователем, не корнем, я должен был дать rsync
следующие возможности:
setcap cap_net_bind_service,cap_setgid=+ep /usr/bin/rsync
cap_net_bind_service
- это необходимо так, демон может связать с системными портами (ниже, чем 1 024, порт по умолчанию rsync связывает с, 873) cap_setgid
- это - то, что вызвало setgroups failed
ошибка. Hope это помогает кому-то в будущем.