Linux 文件权限与 umask 详解:从 rwx 到最小可用原则

举报
yd_255989600 发表于 2026/11/09 19:58:06 2026/11/09
【摘要】 在 Linux 日常运维和开发中,文件权限是最基础也最容易踩坑的一环。很多人能记住 chmod 777,却讲不清 rwx 对目录和文件的区别,也不清楚 umask 是如何影响新建文件权限的。本文把这套机制一次性讲清楚。一、权限位的三组结构执行 ls -l 会看到类似 -rw-r--r-- 的字符串:第 1 位是文件类型,后面 9 位每 3 位一组,分别代表所有者(user)、所属组(grou...

在 Linux 日常运维和开发中,文件权限是最基础也最容易踩坑的一环。很多人能记住 chmod 777,却讲不清 rwx 对目录和文件的区别,也不清楚 umask 是如何影响新建文件权限的。本文把这套机制一次性讲清楚。

一、权限位的三组结构

执行 ls -l 会看到类似 -rw-r--r-- 的字符串:第 1 位是文件类型,后面 9 位每 3 位一组,分别代表所有者(user)、所属组(group)、其他人(other)的读(r)、写(w)、执行(x)权限。

  • 对文件:r 可读、w 可写、x 可执行(脚本或二进制)。
  • 对目录:r 可列出内容、w 可增删文件、x 可进入(cd)。

因此给目录 755、给普通文件 644 是最常见的组合。

二、chmod 的两种写法

符号写法直观:chmod u+x script.sh 给所有者加执行权限,chmod go-w dir 去掉组和其他人的写权限。数字写法快捷:chmod 600 id_rsa 是私钥的标准权限,chmod 700 ~/.ssh 保证密钥目录不被他人窥探。

chmod 644 index.html
chmod 755 deploy.sh
chmod -R 700 /home/user/.ssh

三、umask:新建文件的默认权限

umask 是一个“掩码”,它从最大权限中减掉相应位。目录最大权限是 777,文件最大权限是 666(文件默认不可执行)。假设 umask 022,则新建目录权限为 755,新建文件权限为 644。

$ umask
0022
$ touch a.txt && ls -l a.txt
-rw-r--r-- 1 user user 0 Nov  9 20:00 a.txt

可以用 umask 077 让新建文件默认仅自己可见,适合处理敏感数据的场景。

四、常见踩坑

  1. 私钥权限过大导致 SSH 拒绝使用:把 .ssh 目录设为 700、私钥设为 600 即可。
  2. 用 chmod -R 777 图省事,等于把服务暴露给所有用户,生产环境务必避免。
  3. 目录少了 x 权限,即使有 r 也无法进入,表现为“能看到文件名却进不去”。

五、小结

权限管理的核心是“最小可用”:目录 755、文件 644、敏感文件 600,再配合合理的 umask,就能覆盖绝大多数场景。记住 rwx 对目录和文件含义不同,是理解一切权限问题的前提。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。