linux新建文件和目录的默认权限由umask掩码与最大权限共同决定:文件最大权限666(无执行权),目录777(需执行权);umask=0022时,文件得644,目录得755。

Linux 新建文件和目录的默认权限,不是直接设定的,而是由 umask(掩码) 和系统预设的「最大权限」共同计算得出。这个过程看似抽象,但逻辑清晰、可预测。
umask 是什么
umask 是一个屏蔽值,它从最大权限中“减去”对应位的权限,从而得到实际创建时的默认权限。它不决定“给什么”,而是决定“去掉什么”。
- 默认常见值是
0022(八进制),也可写作022(前导 0 通常省略,但四位写法更规范,含特殊权限位)。 - umask 值本身不体现文件类型或执行权逻辑,只表示要屏蔽掉的权限位。
文件和目录的最大权限不同
这是关键前提,必须分开理解:
普通文件最大权限是
666(即rw-rw-rw-)
原因:新建文件默认不赋予执行(x)权限,避免意外执行二进制或脚本带来安全风险。目录最大权限是
777(即drwxrwxrwx)
原因:目录需要x(进入权限)才能被访问,所以允许默认带执行权。
权限计算方式(推荐字母法,直观可靠)
用“最大权限”减去“umask 对应的权限位”,即可得实际默认权限。注意:这里“减”是权限位的去除,不是数学减法。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
以 umask = 0022 为例:
- umask
0022→ 字母表示为----w--w-(属主无屏蔽,属组和其他人各屏蔽w) - 文件:
rw-rw-rw-减----w--w-→rw-r--r--(即644)
(属组和其他人的写权限被去掉) - 目录:
rwxrwxrwx减----w--w-→rwxr-xr-x(即755)
(属组和其他人的写权限被去掉,执行权保留)
再比如 umask = 0002:
- umask
0002→-------w- - 文件:
rw-rw-rw-−-------w-=rw-rw-r--(664) - 目录:
rwxrwxrwx−-------w-=rwxrwxr-x(775)
实际验证方法
# 查看当前 umask(数值和符号两种形式) umask # 输出如 0022 umask -S # 输出如 u=rwx,g=rx,o=rx # 创建测试文件和目录,观察权限 touch testfile mkdir testdir ls -l testfile testdir
你会看到:
-
testfile权限通常是-rw-r--r--(644) -
testdir权限通常是drwxr-xr-x(755)
——这正是666−022=644,777−022=755的结果。
注意几个易错点
- umask 的
0开头是八进制标识,不是十进制;022≠22(后者会误算成十进制 22 → 八进制 26,结果错误)。 - 文件永远不会自动获得
x权限,哪怕 umask 是0000,文件仍是666→rw-rw-rw-,而非777。 - 目录的
x权限不可省略,否则无法cd进入,即使有r也只能ls看名字,看不到详情。
不复杂但容易忽略










