我已经设置了一个rsync服务器-〉/etc/rsyncd.conf
max connection = 5
log file = /var/log/rsync.log
[web]
path = /srv/www/html
read only = false
list = yes
hosts allow = 127.0.0.1
uid = nobody
gid = nobody
[root@localhost www]# ls -l /srv/www/html/
-rwxrwxrwx. 1 amit amit 8 Apr 28 10:37 index.html
如果我做了
$rsync 127.0.0.1::
$web
它就会正确显示模块名但如果我这样做了
$rsync 127.0.0.1::web
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
我不知道为什么?我首先在localhost上测试rsync的工作,因为它在远程rsync失败了。
3条答案
按热度按时间jyztefdp1#
解决办法是
在服务器上的/etc/rsyncd. conf中添加
我不知道为什么默认情况下是真的。在浏览rsync文档时幸运地找到了解决方案。希望这能为其他人节省时间。
干杯
sq1bmfud2#
我也遇到了同样的问题,注意到我在服务器端
rsyncd.conf
中给出的路径是错误的。实际路径是path=/usr/share/tomcat/webapps/folder
,但我在更正路径时给出的是path=/usr/share/tomcat6/webapps/folder
。因此,请确保您的路径是正确的,具有正确的所有权和权限。eit6fx6z3#
这可能是SELinux的问题,它需要知道文件夹可以被rsync守护进程使用。让我们考虑一个例子,rsync下面的文件夹:
/home/myuser/ftp
需要运行以下命令来设置正确的SELinux上下文:
奇怪的是,我注意到父文件夹必须被标记,这就是为什么标记是在
/home/myuser
上而不是/home/myuser/ftp
上完成的原因。限制到ftp
子文件夹只是在rsync守护进程配置中完成的。您可以通过运行以下命令来检查SELinux标签:
一篇有趣的文章介绍了为什么将chroot和SELinux结合起来是一个好主意:http://blog.siphos.be/2012/04/why-both-chroot-and-selinux/