項目環境:客戶那在一台windows 2008上部署應用服務(Java實現),在Linux上部署JBIZ中間交易業務平台服務(C實現)。
出現問題:Linux下複製檔案失敗
先說一下問題由來,因為該項目牽扯與銀行進行互動,為了保證資金資料的安全可靠性,每天業務系統的資料都要和銀行傳過來的資料進行比對(該過程完全由程式實現),在以前測試環境中也出現很多次,比對資料失敗。查其原因都是銀行的資料要麼金額不對要麼格式有問題。格式有問題包括沒嚴格按照約定的資料格式、或者存在多餘的分行符號。 在測試庫上都搞定之後,按理來說正式庫就會沒有問題了。誰承想還是有問題,一開始我還思維定式的說銀行的資料格式有問題,讓他們嚴格按照約定來。但是還是有問題。之後我就排查原因。我仔細查看日誌,並沒有發現銀行資料的問題,就是在移動檔案的時候出問題(比對完資料之後,需要將檔案移動到其它地方)。為了更加確認的縮小問題,我拿著資料在公司的環境進行了一下測試,沒問題。 然後我就仔細查看客戶機器的測試環境和正式環境的檔案許可權,我發現xxxx和xxxxtest都是dba組,用xxxx登入時,我看到backup(資料比對完之後要移動的地方)檔案夾顯示:drwxr-xr-x 2 xxxxtest dba 4096 X月 XX XX:XX backup。雖然xxxx和xxxxtest都是dba組使用者,但是只有執行和讀的許可權,看到這我明白了,果真是許可權的問題。之後我將該檔案件直接刪掉,然後重建立。顯示:drwxr-xr-x 2 xxxx dba 4096 X月 XX XX:XX backup。重新發起比對資料的交易,資料比對成功。註:Linux 檔案許可權符號身份:u - 所有者(該檔案的所屬者);g - 所有者所在的族群;o - 其他人(不是所有者或所有者的族群);a - 每個人或全部。許可權:r - 讀取權;w - 寫入權;x - 執行權。行動:+(添加許可權);-(刪除許可權);=(唯一許可權)。每種許可權都可以用一個數值來代表:r=4,w=2,x=1,-=0。例如:drwx------(700) 只有所有者能在目錄中讀取、寫入。 drwxr-xr-x(755) 每個人都能讀取目錄,但是其中的內容卻只能被所有者改變。
作者 laoli5290