權限上的改變,一來讓檔案是在命令列裡看起來怪怪的,一般的圖片檔案名稱變成可執行的綠色,二來是本來可以使用 apache 服務以唯讀方式取出的檔案也因為檔案不允許 other 身分存取而發生錯誤。因此搞得不能無視它,要想辦法解決。
連線的兩台主機都是 Linux ,所以當時選擇的是 nfs 協定串接,不過在檢查過設定仍沒有找到解決方式,加上傳輸的資料並不大,只是偶而檢查的使用需要。所以打算改成其它主機使用的 samba 協定(雖然主機中沒有一台是 windows 系統),看看是不是就避開權限問題。
改變協定的結果是……沒有用。所有的檔案還是處於 770 的權限設定,至於它是因為系統有問題,還是這是新一代的網路連線設定就不得而知了,這部分的理解工作就先交給 MIS 負責去作,因為手上還有許多工作得處理。
最後解決的方式,是在 mount 的時候加上指定擁有者的參數,讓網頁服務的執行帳號(那台是 nobody)是其擁有者或群組成員。雖然沒有辦法解決奇怪權限的現象,但是至少可以讓服務正常運作。
而不久之後,又發現到有部分資料有缺漏的狀況,得由這個網磁碟抓取,複製下來後為了統一將權限修改回「正常」的狀況,也就是資料夾 755 檔案 644 ,所以到網路上查查有沒有類似的指令可以大量進行改寫。
運氣還算不錯,不久就在鳥哥的討論區找到這篇相關的討論,再經過簡單的修改…最終達到我修改權限設定的需求。
指令的原型是…
find . -type d -exec chmod 755 {} \;
可以看得出來是利用 find 指令,去找當前目錄「.」下的所有檔案(含資料夾),而條件是所有的目錄「-type d」再對所有找到的項目進行其它指令呼叫「-exec」,來改變其權限「chmod 775」。不過後面的大括號和「\;」就不知道要怎麼解釋了。
所以,我使用兩行指令達到我的目的。
find . -type f -exec chmod 644 {} \; # 我將 -type d 改成 -type f 就表示找一般的檔案 find . -type d -exec chmod 755 {} \;
作點小小的記錄的,免得未來有需要的時候又要回到茫茫網海裡找答案…
沒有留言:
張貼留言