开源镜像管理项目Harbor部署时组件启动报permission denied错误的解决方法

在部署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这个用户就可以读取配置文件了

 

你可能感兴趣的:(容器,harbor,umask,文件权限)