更新时间:2023-07-06 GMT+08:00

如何设置容器umask值?

问题描述

tailf /dev/null的方式启动容器,然后手动执行启动脚本的方式得到的目录的权限是700,而不加tailf由Kubernetes自行启动的方式得到的目录权限却是751。

解决方案

这个问题是因为两种方式设置的umask值不一样,所以创建出来的目录权限不相同。

umask值用于为用户新创建的文件和目录设置缺省权限。如果umask的值设置过小,会使群组用户或其他用户的权限过大,给系统带来安全威胁。因此设置所有用户默认的umask值为0077,即用户创建的目录默认权限为700,文件的默认权限为600。

可以在启动脚本里面增加如下内容实现创建出来的目录权限为700:

  1. 分别在/etc/bashrc文件和/etc/profile.d/目录下的所有文件中加入“umask 0077”。
  2. 执行如下命令:
    echo "umask 0077" >> $FILE

    FILE为具体的文件名,例如:echo “umask 0077” >> /etc/bashrc

  3. 设置/etc/bashrc文件和/etc/profile.d/目录下所有文件的属主为:root,群组为:root。
  4. 执行如下命令:
    chown root.root $FILE