Linux rsync服务器出现故障
我已经设置了一个rsync服务器->/etc/rsyncd.confLinux 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
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
当我更正路径时,该路径已生效。因此,请确保您的路径正确且具有正确的所有权和权限。根据文档,此解决方案会带来一些安全后果。就我而言,我对这些后果很满意。但是请检查手册页,看看它与您的关系如何。在我的例子中,当目标目录还不存在时,我收到了这个错误。