• rsync配置中的auth error,一个隐秘的错误


    我们都知道rsync是linux自带的功能强大的文件同步协议。 为了做免密码文件同步,所以,有多种配置。但是种种配置中,可能会遇到一个让人很纠结的问题,那就是安全认证错误的问题!

    这个配置,是基于rsync daemon的应用,主要是为了方便应用程序操作的方便。

    这个问题,有可能是密码错误,有可能是daemon端的秘钥文件权限不是600,等等。我这里不是说这些问题,我要说的是一个非常让人抓狂的问题,就是rsyncd.conf文件里面的空格造成的认证失败的问题。

    先看配置文件:

     1 uid = nginx 
     2 gid = nginx
     3 pid file=/var/run/rsyncd.pid
     4 log file=/var/log/rsyncd.log
     5 secrets file = /etc/rsyncd.secrets
     6 auth users = cmsuser
     7 
     8 [cms]
     9 path = /
    10 read only = no

    直接看上面的配置,是不是觉得没有什么问题?

    测试看看吧,日志:

    1 [tomcat@p0-tkonline-cms-app01 /u02/tomcat]$ rsync -avz -b tapp1 cmsuser@10.135.88.11::cms/olnfsdta/TK_ROOT
    2 @ERROR: auth failed on module cms
    3 rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

    这个是不是就是问题了?为何还是报错呢? 不细心的人,可能抓破脑袋都不知道问题在哪!我也是呵呵,也只能呵呵一下!

    我由于配置linux相关的服务,遇到奇葩问题多了,曾近就发现过是配置文件中有空格造成的问题,于是乎,我也怀疑这里有空格的问题,所以, 将配置文件打开一看,逐个去找哪有看不见的空格。看看下面的图:

    将鼠标挪到uid的最后一个字符处,就发现了一个空格。。。继续检查,将其他的字符串尾部的空格都去掉。然后重启rsync daemon。再次传递文件,吼吼,OK了!

    总结: rsync的daemon启动模式下,rsyncd.conf的配置文件,必须谨记,每一行配置最后不能有空格,尤其是像auth users这一行不能有空格,uid,gid等也不能有空格! linux的配置,有好些都要小心,一个好的配置习惯,就是尽量写规范,不要引入不必要的空格,更不要搞出中文的空格或标点符号!

  • 相关阅读:
    常用javascript 小强斋
    EJB>持久化实体管理器EntityManager 小强斋
    常用javascript 小强斋
    常用javascript 小强斋
    JSF>事件处理Phase 事件 小强斋
    EJB>持久化实体管理器EntityManager 小强斋
    EJB>持久化实体管理器EntityManager 小强斋
    EJB>实体bean的属性映射 小强斋
    JSF>表格处理 小强斋
    JSF>JSF 生命周期 小强斋
  • 原文地址:https://www.cnblogs.com/shihuc/p/5682038.html
Copyright © 2020-2023  润新知