centos rsync服务器失败

webghufk  于 2023-02-16  发布在  其他
关注(0)|答案(3)|浏览(178)

我已经设置了一个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失败了。

jyztefdp

jyztefdp1#

解决办法是
在服务器上的/etc/rsyncd. conf中添加

use chroot = false

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

sq1bmfud

sq1bmfud2#

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

eit6fx6z

eit6fx6z3#

这可能是SELinux的问题,它需要知道文件夹可以被rsync守护进程使用。让我们考虑一个例子,rsync下面的文件夹:/home/myuser/ftp
需要运行以下命令来设置正确的SELinux上下文:

semanage fcontext -a -t rsync_data_t '/home/myuser(/.*)?'
restorecon -Rv '/home/myuser'
setsebool -P rsync_client on

奇怪的是,我注意到父文件夹必须被标记,这就是为什么标记是在/home/myuser上而不是/home/myuser/ftp上完成的原因。限制到ftp子文件夹只是在rsync守护进程配置中完成的。
您可以通过运行以下命令来检查SELinux标签:

ls -Z /home/myuser

一篇有趣的文章介绍了为什么将chroot和SELinux结合起来是一个好主意:http://blog.siphos.be/2012/04/why-both-chroot-and-selinux/

相关问题