umask是linux中控制新文件和目录默认权限的掩码,通过从文件最大权限666、目录777中减去umask值(如022→文件644、目录755)来确定实际权限;支持临时设置(当前会话)和永久配置(写入~/.bashrc或/etc/profile)。

Linux 调整系统默认文件权限,核心是控制 umask(权限掩码) —— 它不直接设权限,而是决定新建文件和目录时“自动去掉哪些权限”。理解并合理设置 umask,就能统一管控新资源的初始访问安全级别。
搞懂 umask 的计算逻辑
umask 是一个三位八进制数(如 022、002),作用方式是“从默认最大权限中减去它”:
- 新建文件默认最大权限是 666(即 rw-rw-rw-),永远不带执行位(即使 umask=000,文件也是 666,不是 777)
- 新建目录默认最大权限是 777(即 drwxrwxrwx)
- 实际权限 = 默认最大权限 − umask(按位减,非数学减法,但八进制下结果一致)
例如:
• umask 022 → 文件 666−022=644(rw-r--r--),目录 777−022=755(rwxr-xr-x)
• umask 002 → 文件 664(rw-rw-r--),目录 775(rwxrwxr-x)
• umask 077 → 文件 600(rw-------),目录 700(rwx------)
临时修改当前会话的 umask
只影响当前终端及其启动的子进程,关闭后失效。适合测试或临时协作场景:
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 查看当前值:
umask(显示八进制,如 0022)或umask -S(显示符号形式,如 u=rwx,g=rx,o=rx) - 设为组可写(常见协作):
umask 002 - 设为仅用户可访问(高安全):
umask 077 - 设为其他用户完全无权:
umask 007
永久生效:写入 shell 配置文件
让新登录的 shell 自动加载设定。推荐按需选择范围:
-
仅当前用户生效:编辑
~/.bashrc或~/.profile,末尾添加一行:umask 002(保存后运行source ~/.bashrc立即生效) -
所有用户生效(需 root 权限):编辑
/etc/profile(通用)或/etc/bash.bashrc(Debian/Ubuntu),同样添加umask行 -
登录会话专用:某些系统支持在
/etc/login.defs中配置UMASK行,适用于通过login启动的会话
验证与进阶:确认效果 + 更精细控制
改完一定要测试,避免误配:
- 执行
umask确认值已更新 - 新建测试项:
touch testfile && mkdir testdir - 检查权限:
ls -l→ 看testfile和testdir是否符合预期(如 umask 002 应得 664 和 775) -
复杂共享场景:若需对某个目录下的所有新文件/子目录强制继承特定组权限(比如团队项目目录),可配合 ACL:
setfacl -d -m g:devteam:rwx /srv/project
(要求文件系统支持,如 ext4、xfs;用getfacl /srv/project查看是否生效)
不复杂但容易忽略:umask 是系统权限策略的第一道防线,设得太松(如 000)会让新文件默认对所有人可读写,设得太严(如 077)又可能影响协作。选一个平衡值(如 002 或 022),再结合 chmod/chown 和 ACL 按需微调,才是稳妥做法。










