在部署harbor時,有時候會出現如下錯誤:
[ERROR] [base.go:248] failed to load app config: open /etc/core/app.conf: permision denied
錯誤很明顯就是對文件沒有讀取權限,那麼爲什麼會出現這種情況呢?
看過harbor組件運行的進程的話,就知道harbor程序啓動是一個10000的用戶,如果文件權限屬性對其他用戶沒有讀權限,那麼10000這個用戶當然就無法讀取配置文件了。
定位過程:
方式一:首先創建一個新文件,然後查看文件的默認讀寫權限,如果750,那麼說明操作系統的默認文件權限就是750,因此在harbor程序部署時,自動生成的配置文件權限都是750,10000這個用戶當然就沒有讀取配置文件的權限了
方式二:查看umask值,umask是linux系統內置的默認文件權限查看命令,也可以通過此命令修改默認文件權限,如果umask的值是027,則表明操作系統默認文件權限是750,umask命令的實現就是對文件權限做減法,全部權限是777,則umask的027就表示750,那麼harbor程序部署時,自動生成的配置文件的權限都是750了,10000這個用戶就無法讀取配置文件了
瞭解了問題的根本原因,就好解決了,執行umask 0022,將文件默認權限改爲755,這樣harbor程序部署時,自動生成的配置文件就會變成755,10000這個用戶就可以讀取配置文件了