如何设置容器umask值?
问题描述
tailf /dev/null的方式启动容器,然后手动执行启动脚本的方式得到的目录的权限是700,而不加tailf由Kubernetes自行启动的方式得到的目录权限却是751。
解决方案
这个问题是因为两种方式设置的umask值不一样,所以创建出来的目录权限不相同。
umask值用于为用户新创建的文件和目录设置缺省权限。如果umask的值设置过小,会使群组用户或其他用户的权限过大,给系统带来安全威胁。因此设置所有用户默认的umask值为0077,即用户创建的目录默认权限为700,文件的默认权限为600。
可以在启动脚本里面增加如下内容实现创建出来的目录权限为700:
- 分别在/etc/bashrc文件和/etc/profile.d/目录下的所有文件中加入“umask 0077”。
- 执行如下命令:
echo "umask 0077" >> $FILE
FILE为具体的文件名,例如:echo “umask 0077” >> /etc/bashrc
- 设置/etc/bashrc文件和/etc/profile.d/目录下所有文件的属主为:root,群组为:root。
- 执行如下命令:
chown root.root $FILE