我在两个系统上都运行了 rsyncd 。当我尝试检查连接时,出现以下错误:
来自主机2:
user@host2#rsync username@host1::share
password: [password]
@ERROR: auth failed on module share
rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
在主机1上:
我有以下配置
vim /etc/rsyncd.conf
max connections = 2
log file = /var/log/rsync.log
timeout = 300
[share]
comment = Public Share
path = /home/subhransu
read only = no
list = yes
uid = backuppc
gid = backuppc
auth users = backuppc
secrets file = /etc/rsyncd.secrets
在主机1上
tail /var/log/rsync.log
2013/04/09 03:47:15 [29179] forward name lookup for cust-198-154-126-179.corexchange.com failed: No address associated with hostname
2013/04/09 03:47:15 [29179] connect from UNKNOWN (198.154.126.179)
2013/04/09 03:47:18 [29179] auth failed on module share from unknown (198.154.126.179): unauthorized user
注意:rsyncd.secrets
已正确user:passwd
,无防火墙问题。
答案1
我相信服务器配置文件中的uid
和参数是用于权限分离的。gid
auth users
配置中的参数明确拒绝除“”之外的所有其他用户名backuppc
。
因此,您需要在“Host1”上的 rsyncd.secrets 中以及“Host2”上的命令行中使用“backuppc”。
尝试auth users
从 中删除该语句/etc/rsyncd.conf
,或者仔细检查您确实是backuppc
Host2 上的用户(不是“用户”或“用户名”,如示例“来自 host2:”)。
排除故障时,还可以尝试添加strict modes = false
到 rsyncd 配置文件中。
答案2
0
我在 CentOS 7 上遇到了同样的问题。我浏览了很多文章、论坛,但找不到解决方案。问题出在 SElinux 上。在服务器端禁用 SElinux 有效。检查服务器端的 SELinux 状态(使用 rysnc 从其中提取数据)用于检查 SELinux 状态并禁用它的命令
$getenforce
强制执行 ## 这意味着 SElinux 已启用
$设置力量 0
$getenforce
宽容的
现在尝试在客户端运行 rsync 命令,它对我有用。一切顺利!
答案3
还要检查 rsyncd.conf 是否设置了正确的权限:
chmod 640 /etc/rsyncd.cond