直接运行umask -s可符号化显示当前shell的权限掩码,如u=rwx,g=rx,o=rx,表示owner保留全部权限、group/others均屏蔽写权限(对应八进制0022);该输出仅用于查看,设置必须使用八进制数(如umask 0002),符号模式不可赋值。

直接运行 umask -S 就能以符号形式显示当前 shell 的权限掩码模板,比如输出 u=rwx,g=rx,o=rx —— 它不是“禁止哪些权限”,而是明确告诉你:owner、group、others 各自**被保留的权限**(即创建文件/目录时允许存在的权限)。
符号输出怎么看懂?
符号格式按 u(user)、g(group)、o(others)三段排列,每段列出该身份实际拥有的权限(r/w/x),缺失即表示该权限被 umask 屏蔽:
- u=rwx → owner 可读、可写、可执行(全部保留)
- g=rx → group 可读、可执行,但不可写(w 被屏蔽)
- o=rx → others 同样可读可执行,不可写
这对应八进制 umask 值 0022:因为 group 和 others 的写位(w=2)都被屏蔽了。
为什么不能用符号值直接设置 umask?
umask 命令不支持像 umask u=rwx,g=rx,o=rx 这样赋值 —— 这是非法语法。符号模式仅用于显示(-S),不可用于设置。设置必须用八进制数,例如:
-
umask 0002→ 让同组用户有写权限(常见于协作环境) -
umask 0077→ 仅 owner 可读写执行,彻底屏蔽 group 和 others
若想从符号输出反推八进制值,可对照:r=4, w=2, x=1;每类身份缺失的权限位相加即得对应数字(如 g 缺 w → 2,o 缺 w → 2,合计 022)。
配合其他命令快速验证效果
查完 umask -S 后,可立即建个文件和目录验证实际行为:
touch testfile && mkdir testdirls -ld testfile testdir
你会发现:
– 普通文件权限 = 666 减去 umask 的后三位(如 umask 0002 → 664)
– 目录权限 = 777 减去 umask 的后三位(如 umask 0002 → 775)
注意生效范围
umask -S 显示的是当前 shell 会话的值。它可能被 ~/.bashrc、/etc/profile 等配置覆盖,不同终端或 ssh 登录可能不同。要永久生效,需在用户 shell 配置文件中添加 umask 0002 类似语句,而非符号形式。











