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的配置,有好些都要小心,一個好的配置習慣,就是盡量寫規范,不要引入不必要的空格,更不要搞出中文的空格或標點符號!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM