1. 程式人生 > >cwRsync提示password file must be owned by root when running as root的解決方法

cwRsync提示password file must be owned by root when running as root的解決方法

cwRsync提示password file must be owned by root when running as root的解決方法

 更新時間:2015年08月30日 23:05:52   投稿:mdxy-dxy    我要評論

  今天在配置伺服器的時候,用了rsync4.10版本,客戶端是2003伺服器端是2008 r2 同步的時候提示password file must be owned by root when running as root問題,以前用老版本的時候沒見過,還好看了下面的文章解決了,特分享下  

當在Windows下面安裝好cwRsync之後,也設定好了同步密碼檔案,當執行同步的時候遇到這個標題描述的問題:

“password file must be owned by root when running as root”

我的解決辦法是查詢服務端(如果您安裝了是客戶端服務端整合的4.05版,則直接進入到安裝目錄下的Bin目錄下)尋找是否存在chomd.exe這個檔案(比如E:\Program Files (x86)\ICW\Bin這樣的路徑),然後,在當前路徑下開啟CMD(可能需要提升許可權)。

如果上面的程式下載不方便可以到指令碼之家下載,下載地址//www.jb51.net/softs/373702.html。這裡提供的是4.10的版本,理論上都可以用。

客戶端執行:

chmod -c 600 /cygdrive/e/pass.txt

(注意下面還需要執行chown administrator /cygdrive/e/pass.txt)

其中/cygdrive/e/pass.txt 表示 Windows下面的展示路徑e:\pass.txt,請一定要轉換成這個樣式!

您將會看到如下反饋資訊表示新增已經新增新的許可權到該密碼同步檔案
mode of `/cygdrive/e/pass.txt' changed to 0600 (rw-------)

緊接著繼續執行:

chown administrator /cygdrive/e/pass.txt

同時該命令無反饋資訊

這樣在繼續執行我的同步命令就會順利進行:

執行:

rsync -uvzrtopg --delete --progress /cygdrive/e/backup [email protected]::backup --password-file=/cygdrive/e/pass.txt

得到反饋資訊:

building file list ...
8 files to consider

經過這樣的處理,在Windows下面執行rsync的同步命令將會非常順利。

後續內容,當我查看了對應的密碼同步檔案的安全屬性,下面是截圖:

圖示1:我們可以看到繼承被關閉,同時添加了三種使用者的特殊許可權,以及所有者變成了Administrator。

而特殊許可權集中在以下資訊

圖示2:全部為針對檔案的一些許可權。

可以看到該同步工具對於許可權的依賴還是很重要的,同時方便來自於Linux、Unix上的使用者做Windows上面的實施,也方便的加入了他們熟悉習慣的CHOMD、CHOWN的Windows編譯版。

-=EOB=-

20130616補充說明:

由於一些未知原因,導致您手動新增許可權後可能還會遇到相應的錯誤提示,經過觀察時該chmod會在某些版本的Windows下面再新增一個叫做NONE的賬戶,如果遇見手動新增失敗的情況,還請使用該命令進行一次許可權的重新賦予。

下面是其他網友給出的解決方法:

方法二:

windows客戶端提示password file must be owned by root when running as root解決方法
rsync.exe -vzru4P --old-d --progress --password-file=rsyncpwd.txt [email protected]::log /cygdrive/c/bak
修改成如下:
rsync.exe -vzru4P --old-d --progress --password-file=rsyncpwd.txt<p.txt [email protected]::log /cygdrive/c/bak

 

方法三:

這算是個老問題了,每次在windows主機上通過cwrsync向服務端同步資料的時候都會遇到,這次總結記錄下吧。錯誤程式碼為:

password file must be owned by root when running as root
在linux上設定rsync的時候,需要將passwordfile設定為600許可權。所以在windows上我們也可以用其自帶的chmod.exe 執行,其cwrsync客戶端預設安裝的位置是C:Program FilescwRsyncbin ,具體做法如下:

“C:Program FilescwRsyncbin” 600 /cygdrive/c/etc/password.txt
執行完以後,如果還有錯誤提示,可以使用chown.exe命令將其檔案的屬主做下更改。具體操作如下:

服務端:

?
1 2 chmod.exe -c 600 /cygdrive/c/etc/password.txt chown.exe SvcCWRSYNC /cygdrive/c/etc/password.txt

SvcCWRSYNC為windows上的cwrsync-server安裝時預設新建的一個使用者。

客戶端:

?
1 2 chmod.exe -c 600 /cygdrive/c/etc/password.txt chown.exe administrator /cygdrive/c/etc/password.txt

預設客戶端上沒有chown.exe這個命令,直接從cwrsync-server的安裝路徑裡拷貝一個過來就可以用了。windows的預設使用者一般都是administrator,如果你不是以administrator登入的,請將上面命令中的administrator改成你當前使用的使