Linux rsync服务器出现故障

Linux rsync服务器出现故障,linux,centos,rsync,Linux,Centos,Rsync,我已经设置了一个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

我已经设置了一个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]
我不知道为什么?我首先在本地主机上测试rsync的工作,因为远程rsync失败。

解决方案是
在服务器add上的/etc/rsyncd.conf中

use chroot = false
我不知道为什么默认情况下这是真的。浏览rsync文档时幸运地找到了解决方案。希望这能为其他人节省时间。

干杯

这可能是一个SELinux问题,它需要知道rsync守护程序可以使用该文件夹。让我们考虑一个例子,rScC下面的文件夹:<代码> /home /MySuth/FTP< /Calp>

需要运行以下命令来设置正确的SELinux上下文:

semanage fcontext -a -t rsync_data_t '/home/myuser(/.*)?'
restorecon -Rv '/home/myuser'
setsebool -P rsync_client on
奇怪的是,我注意到父文件夹必须贴标签,因此为什么标签是在
/home/myuser
而不是
/home/myuser/ftp
上进行的。只需在rsync守护程序配置中完成对
ftp
子文件夹的限制

您可以通过运行以下命令来检查SELinux标签:

ls -Z /home/myuser

关于为什么将chroot和SELinux结合起来是个好主意的一篇有趣的文章:

我遇到了同样的问题,并注意到我在服务器端的rsyncd.conf中给出的路径是错误的。 实际路径是 路径=/usr/share/tomcat/webapps/folder 但是我在给 path=/usr/share/tomcat6/webapps/folder
当我更正路径时,该路径已生效。因此,请确保您的路径正确且具有正确的所有权和权限。

根据文档,此解决方案会带来一些安全后果。就我而言,我对这些后果很满意。但是请检查手册页,看看它与您的关系如何。在我的例子中,当目标目录还不存在时,我收到了这个错误。