Linux文件权限入门——看懂rwx与chmod

举报
yd_250779715 发表于 2026/11/04 11:34:43 2026/11/04
【摘要】 刚接触 Linux 时,很多人第一次被权限拦住:明明文件就在那里,执行却提示 Permission denied;改了权限,又担心是不是给得太宽。本文就从最常见的 ls -l 输出讲起,把 rwx、所有者、组和其他人,以及 chmod 的数字法一次讲清楚。 一、先会读 ls -l执行 ls -l,常见的一行是这样的:-rw-r--r-- 1 zhangsan dev 2048 Nov 4...

刚接触 Linux 时,很多人第一次被权限拦住:明明文件就在那里,执行却提示 Permission denied;改了权限,又担心是不是给得太宽。本文就从最常见的 ls -l 输出讲起,把 rwx、所有者、组和其他人,以及 chmod 的数字法一次讲清楚。

一、先会读 ls -l

执行 ls -l,常见的一行是这样的:

-rw-r--r-- 1 zhangsan dev  2048 Nov  4 10:00 notes.txt

第一个字符表示类型:- 是普通文件,d 是目录,l 是软链接。后面九个字符分成三组,每组三个,依次是所有者、所属组、其他人。每一组里的 r、w、x 分别代表读、写、执行。上面的例子就是:所有者可读写,组和其他人只可读。

第二列的数字、后面的所有者和组也很重要。权限不是只看字母,还要看你是谁:你是文件所有者,就看第一组;你在所属组里,就看第二组;既不是所有者也不在组里,就看第三组。系统按这个顺序匹配,只取其中一组,不会把三组合并。

二、数字法:r=4,w=2,x=1

把 r、w、x 记成 4、2、1,三组相加就得到三位数字。755 表示所有者 7(4+2+1,读写执行),组 5(4+1,读执行),其他人 5。644 表示所有者 6(4+2,读写),组和其他人都是 4(只读)。

所以常见的组合很好记:可执行脚本、程序目录常用 755;普通配置文件、文档常用 644;私钥、敏感配置则要收紧,比如 600,只让所有者读写。记住数字不是越大越安全,也不是越小越安全,而是越贴合用途越好。

三、改权限的正确姿势

查看当前权限用 ls -l,修改用 chmod。例如:

chmod 755 deploy.sh
chmod 644 config.yaml
chmod 600 id_rsa

如果只想给所有者加上执行权限,而不动其他位,可以用符号法:chmod u+x 脚本文件。u 代表所有者,g 是组,o 是其他人,a 是全部;+ 是增加,- 是去掉,= 是设为指定值。符号法适合微调,数字法适合一次性定好三组。

改之前先想清楚:这个文件需要被谁读、被谁改、被谁执行?只给必要的权限,是最不容易出错的原则。

四、四个常见易错点

第一,给普通文件加 x 不等于能运行。脚本还需要第一行有正确的解释器,比如 #!/bin/bash,而且内容本身要是可执行的脚本;否则即使 chmod +x,也可能报格式错误。

第二,目录的 x 和文件的 x 含义不同。对文件,x 是执行;对目录,x 是进入目录、访问其中已知文件名的权限。没有 x,即使有 r,也进不去目录、打不开里面的文件;只有 x 没有 r,可以访问已知路径的文件,但不能列出目录内容。

第三,目录写权限要格外谨慎。目录的 w 意味着可以在其中新建、删除、重命名文件,哪怕你不是文件的所有者。所以把目录设成 777,等于把里面文件的删除权也交了出去,生产环境尤其要避免。

第四,权限问题先看身份再看数字。同样是 644,所有者能改、其他人只能读;如果当前用户不在组里,组权限再宽也与你无关。排查时先用 whoami 和 id 确认身份,再用 ls -l 对照三组,这样定位最快。

五、一个小练习

新建一个测试文件和目录,分别试一试:

touch test.txt
mkdir testdir
ls -l test.txt
ls -ld testdir
chmod 600 test.txt
chmod 755 testdir
ls -l test.txt; ls -ld testdir

对照输出,把每组字母翻译成数字,再反向从数字还原成字母。练两遍之后,看到 -rwxr-xr-x 就能立刻反应出 755,看到 drwxr-x— 就知道组可读执行、其他人没有任何权限。

总结一句话:权限是“谁、对什么、能做什么”的三元组。读懂 ls -l 的三组字母,掌握 4、2、1 的数字法,区分文件与目录的 x,再坚持最小权限原则,Linux 权限就不再是玄学,而是一套可以推导的规则。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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