概述
本文将介绍在 Linux 环境中决定新创建文件和目录默认访问权限的 umask 的基本工作原理。从八进制计算方式到协作目录权限控制,再到通过 Shell 配置文件进行永久设置,系统整理可在实际工作中即学即用的核心管理技巧。
1. 查看当前 umask 与默认文件·目录创建权限测试
为了创建并进入用于 umask 配置与权限测试的专用实验目录,执行 mkdir -p /tmp/umask-lab && cd /tmp/umask-lab 命令。

umask 命令用于查看和设置限制新创建文件与目录默认访问权限的掩码值。
从执行结果可以看出,当前会话的默认掩码值被设置为 0022。
⚙️ [常用选项]
-S : 以易于理解的符号形式(u=rwx,g=rx,o=rx)输出允许的权限,而非数字掩码。-p : 以可复用的 umask 命令格式输出当前掩码设置的八进制数值。

执行 umask -S 命令后,可以以直观的符号模式查看根据当前生效的掩码实际赋予属主(u)、属组(g)和其他用户(o)的权限。
输出的 u=rwx,g=rx,o=rx 表示属主默认拥有读·写·执行权限,属组和其他用户默认拥有读·执行权限。

在应用当前 umask 值(0022)的状态下,执行 touch default_file.txt && mkdir default_dir 命令创建新文件和目录,以验证默认创建权限。

执行 ls -ld default_file.txt default_dir 命令查看所创建文件和目录的实际权限。
可以确认,目录是由默认最大权限 777 排除掩码 022 后生成为 755(drwxr-xr-x),普通文件则是由排除了执行权限的最大默认权限 666 排除掩码 022 后生成为 644(-rw-r--r--)。

2. 通过临时修改 umask 值实战控制新文件权限
执行 mkdir -p /tmp/umask-lab && cd /tmp/umask-lab 命令,确认并进入用于实战练习的专用工作区。

执行 umask 027 命令,将当前会话的掩码值临时修改为 027。
此设置将限制同组成员的写入权限,并完全屏蔽其他用户(其他所有人)的读取、写入和执行权限。

为了验证修改后的 umask 值(027)是否正常应用于新创建的项目,执行 touch secure_file.txt && mkdir secure_dir 命令创建测试文件和目录。

执行 ls -ld secure_file.txt secure_dir 命令检查所创建文件和目录的实际权限。
通过输出结果可以检查目录和文件的详细权限状态及所有权信息。

完成权限控制测试后,执行 umask 022 命令将掩码恢复为默认值,以便将当前会话的掩码设置恢复至标准状态。

3. 针对团队协作及 Web 服务器环境的共享目录 umask 配置
执行 mkdir -p /tmp/umask-lab/shared && cd /tmp/umask-lab 命令创建用于团队协作与共同作业的共享目录,并进入工作路径。

为了便于组成员之间顺畅地协作并保留组写入权限,执行 umask 002 命令更改当前会话的掩码值。
此设置仅从默认权限中限制其他用户的写入权限,而对属主和属组均允许读取和写入权限。

在应用修改后的 umask 值(002)的状态下,执行 touch shared/team_doc.txt && mkdir shared/team_project 命令创建协作文件和目录。

执行 ls -ld shared/team_doc.txt shared/team_project 命令检查所创建文件和目录的实际权限。
通过输出结果可以确认共享目录下创建的各项目的详细权限状态及所有权信息。

完成协作环境测试后,执行 umask 022 命令恢复为默认值,将当前会话的掩码设置重置为标准安全状态。

4. 全局系统及针对单用户的 umask 永久生效方法
执行 grep -n 'UMASK' /etc/login.defs 命令查看系统全局的默认 umask 设置值。
从输出结果中可以看到,第 151 行将系统默认值定义为 UMASK 022。

执行 echo '# Custom user umask' >> ~/.bashrc 命令添加注释,明确标明这是个人用户的自定义设置。

执行 echo 'umask 027' >> ~/.bashrc 命令追加配置,以便每次启动新的 Shell 会话时都会自动应用自定义的用户权限。

执行 tail -n 2 ~/.bashrc 命令,检查 umask 相关配置是否已成功添加到 ~/.bashrc 文件末尾。
通过输出结果可以确认注释和 umask 027 设置已正确添加至文件的最后两行。

执行 bash -c 'source ~/.bashrc && umask' 命令以使修改后的 ~/.bashrc 文件设置生效并确认最终掩码值。
通过输出结果可以确认该 Shell 环境中当前生效的掩码状态。

以上简要整理了在 Linux 环境下用于自动控制文件和目录创建权限的 umask 基本概念与实战配置方法。
请结合自身的运行环境与安全策略应用合适的 umask 值,构建更加安全且规范的系统管理体系。