背景

umask是Linux和Unix系统中用于设置文件和目录默认权限的一个参数。它是一个非常重要的设置,因为它定义了新创建的文件和目录的默认权限。

有数服务器需要检查默认系统账号的umask是否为022

操作

cat -n /etc/bashrc | grep -2 'umask'    # 71行是普通用户的更改,默认00273是超级用户的更改,默认022
cat -n /etc/profile | grep -2 'umask'   # 60行是普通用户的更改,默认00262是超级用户的更改,默认022
source /etc/bashrc      # 若修改则刷新bash配置
source /etc/profile     # 若修改则刷新系统配置
# 其他umask统一修改为022
cat -n /etc/login.defs | grep UMASK
# 设置大写 UMASK=022
sed -i "s/077/022/g" /etc/login.defs

默认情况下,新创建的文件和目录具有较为开放的权限(通常是0777),这意味着任何用户都可以读取、写入和执行这些文件。

通过设置umask,可以限制这些默认权限,增加系统的安全性。

例如,如果设置umask为027,那么新创建的文件默认权限将是0750(0777 - 027 = 0750),这意味着只有文件所有者和所属组可以读取、写入和执行文件,其他用户则没有权限。

这就是设置umask的必要性!