news 2026/10/5 2:28:28

Linux 权限别死记!一文搞懂 rwx、数字权限、目录权限坑点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 权限别死记!一文搞懂 rwx、数字权限、目录权限坑点

这几天是国庆我久违的睡了一个大觉

目录

一、 root与普通用户的区分

二、Linux的权限管理

2.1 三种基本权限

2.2 权限的两种表示法:符号和数字

三、权限的修改与验证

四、三个关于权限的问题

4.1 进入一个目录需要哪些权限

4.2 读文件需要什么权限

4.3 写入或删除文件需要哪些权限


一、 root与普通用户的区分

书接上回,一般来说,普通用户是无法直接使用sudo命令的,因为如果所有普通用户都能提权,那么显然安全性是不够的,但是为什么在我的演示中却可以直接sudo呢?这是因为:当前用户加入了 sudo 用户组(在 sudoers 授权名单里)

验证当前用户是否在sudo用户组的方法是:直接输入groups命令

ubuntu@VM-0-4-ubuntu:~$ groups ubuntu adm dialout cdrom floppy sudo audio dip video plugdev lxd netdev #如果在用户组会显示这条 ubuntu@VM-0-4-ubuntu:~$

如果说不在安全组则会显示:

root@VM-0-4-ubuntu:/home/ubuntu# su testuser $ groups testuser $ sudo ls /root [sudo] password for testuser: testuser is not in the sudoers file. This incident will be reported. $

二、Linux的权限管理

2.1 三种基本权限

Linux 文件 / 目录权限分为三类角色:

  • 所有者 (user,u):文件属于谁
  • 所属组 (group,g):同组用户
  • 其他用户 (other,o):剩下所有人

每组 3 种权限:r w x

字符名称对文件含义对目录含义
r读可以查看文件内容可以列出目录里面的文件(ls)
w写修改、覆盖文件内容在目录里新建 / 删除 / 重命名文件
x执行可以运行这个程序脚本可以进入这个目录(cd)

⚠️ 超级易错点: 目录没有 x 权限,就算有 r,也 ls 看不到详情,cd 进不去目录有 w 权限,可以删里面的文件,和文件本身权限无关!

目录有 w 权限,可以删里面的文件,和文件本身权限无关!

通过ls -l可以查看文件的身份

ubuntu@VM-0-4-ubuntu:~$ ls -l temp.txt -rw-rw-r-- 1 ubuntu ubuntu 20901 Sep 28 13:40 temp.txt #所有者:ubuntu 所属组ubuntu 文件大小20901 #-rw-rw-r--:权限 除第一位后九位每三位为一组,对应所有者,所属组,其他用户 rw-表示只有读写没执行,r--表示只有读 #-表示普通文件

但是具有可执行权限不代表可执行,可执行还需要包括文件本身是一个二进制可执行文件


但是为什么要有所属组呢?

原因:

所属组(group)就是用来批量管理权限的,不用给每一个用户单独设置权限。

假设场景:实验室有 4 个同学,都要操作同一套代码文件

  • 用户 A、B、C、D,都需要读写这个项目文件夹 如果没有组:你要对文件给 4 个人,一个个单独授权,人一多管理爆炸。 有用户组:
  1. 创建一个组code_group
  2. 把 A、B、C、D 全部加入这个组
  3. 文件设置:组权限 rw-只要这一条,组里所有人都拥有读写权限。 后续加人,只需要把用户加到组里;删人,直接移出组,不用改文件权限。

2.2 权限的两种表示法:符号和数字

符号表示法:适合单独增删某一项权限,不用计算。

格式:对象 + 操作符 + 权限

  • 对象:ugoa(all,全部 u+g+o)
  • 操作符
    • +:增加权限
    • -:移除权限
    • =:直接设置权限(覆盖原有)
chmod u+x test.txt # u(所有者) + 加上 x执行权限 chmod g-w test.txt # g(所属组) - 去掉 w写权限 chmod o=r test.txt # o(其他人) = 设置为只读,覆盖旧权限 chmod a+r test.txt # a所有人,增加读权限 chmod u=rw,g=r,o=--- test.txt # 一次性设置u g o权限

chomd 作用:修改文件 / 目录的访问权限


数字表示法:

这里用到的是八进制,因为1+2+4=7,是八进制的最小数,可以刚好完全表示所有组合

规则:r=4,w=2,x=1,- = 0每组权限相加得到一个数字

每一组(u/g/o)单独求和,组合成 3 位数字:u g o

常用组合

  • rw-= 4+2+0 =6
  • r-x= 4+0+1 =5
  • rwx= 4+2+1 =7
  • r--= 4+0+0 =4
  • ---= 0
ubuntu@VM-0-4-ubuntu:~$ chmod 600 temp.txt ubuntu@VM-0-4-ubuntu:~$ ls -l temp.txt -rw------- 1 ubuntu ubuntu 20901 Sep 28 13:40 temp.txt #权限被改成只允许拥有者读写了

身份匹配:当用户访问一个文件 / 目录时,系统按顺序匹配身份,匹配到就停止判断,不会继续往下看优先级顺序:1. 是否是文件所有者 (u) → 2. 是否属于文件所属组 (g) → 3. 其他用户 (o)


三、权限的修改与验证

上文我们学习了权限的身份与表示法,接下来学习三个指令,chmod , chown , chgrp 进行权限的修改

示例:chomd 修改单个文件权限

ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l total 12 -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:22 a.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 b.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 c.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ chmod u+x a.txt #给user加上权限 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l total 12 -rwxrw-r-- 1 ubuntu ubuntu 5 Sep 28 23:22 a.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 b.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 c.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ chmod u-r a.txt #给user去掉r权限 ubuntu@VM-0-4-ubuntu:~/text_dir$ chmod o-r a.txt #给other加上read权限 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l total 12 --wxrw---- 1 ubuntu ubuntu 5 Sep 28 23:22 a.txt #现在user和other都没r权限了 -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 b.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 c.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ chmod a-r a.txt #a代表all,给所有去掉r权限 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l total 12 --wx-w---- 1 ubuntu ubuntu 5 Sep 28 23:22 a.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 b.txt -rw-rw-r-- 1 ubuntu ubuntu 5 Sep 28 23:23 c.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ chmod a+r a.txt #给所有加上r权限 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l a.txt -rwxrw-r-- 1 ubuntu ubuntu 5 Sep 28 23:22 a.txt

chown与chgrp

chown 修改文件/目录的所有者

示例:这里的用户sha是我临时创建的,命令是:useradd sha

ubuntu@VM-0-4-ubuntu:~/text_dir$ chown sha a.txt chown: changing ownership of 'a.txt': Operation not permitted #普通用户不能直接改,需sudo或root ubuntu@VM-0-4-ubuntu:~/text_dir$ sudo chown sha a.txt #更改用户名 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l a.txt -rwxrw-r-- 1 sha ubuntu 5 Sep 28 23:22 a.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ sudo chown ubuntu a.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l a.txt -rwxrw-r-- 1 ubuntu ubuntu 5 Sep 28 23:22 a.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ sudo chown sha:sha a.txt #更改用户名及所属组,用:连接 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l a.txt -rwxrw-r-- 1 sha sha 5 Sep 28 23:22 a.txt ubuntu@VM-0-4-ubuntu:~/text_dir$ sudo chown :ubuntu a.txt #只更改所属组 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l a.txt -rwxrw-r-- 1 sha ubuntu 5 Sep 28 23:22 a.txt ubuntu@VM-0-4-ubuntu:~/text_dir$

chgrp 修改文件/目录的所属组(需要root权限或文件所有者)

ubuntu@VM-0-4-ubuntu:~/text_dir$ sudo chgrp sha a.txt #只能修改所属组 ubuntu@VM-0-4-ubuntu:~/text_dir$ ls -l a.txt -rwxrw-r-- 1 sha sha 5 Sep 28 23:22 a.txt

四、三个关于权限的问题

  1. x 权限(最重要)✅ 有 x:可以cd进入目录,可以访问目录里面文件的元信息(权限、属主),可以读取里面文件内容(前提是文件本身有权限) ❌ 没有 x:完全 cd 不进去,就算给 r 也不行
  2. r 权限✅ 有 r:可以列出目录内文件名(ls) ❌ 没有 r:ls看不到里面文件,但是如果知道文件名,依然可以访问文件(只要有 x)
  3. w 权限✅ 有 w:可以在目录里新建、删除、重命名文件(不是改文件内容!是操作目录里的条目)

4.1 进入一个目录需要哪些权限

示例1:去除x权限

ubuntu@VM-0-4-ubuntu:~$ ls -ld text_dir drwxrwxr-x 2 ubuntu ubuntu 4096 Sep 28 23:23 text_dir ubuntu@VM-0-4-ubuntu:~$ chmod u-x text_dir #关掉x权限后进不去了 ubuntu@VM-0-4-ubuntu:~$ ls -ld text_dir drw-rwxr-x 2 ubuntu ubuntu 4096 Sep 28 23:23 text_dir ubuntu@VM-0-4-ubuntu:~$ cd text_dir -bash: cd: text_dir: Permission denied ubuntu@VM-0-4-ubuntu:~$ ls text_dir ls: cannot access 'text_dir/b.txt': Permission denied ls: cannot access 'text_dir/c.txt': Permission denied ls: cannot access 'text_dir/a.txt': Permission denied a.txt b.txt c.txt #没有x后可以看到文件名但是看不到属性 ubuntu@VM-0-4-ubuntu:~$ touch d.txt /text_dir touch: cannot touch '/text_dir': Permission denied #文件也无法新建

4.2 读文件需要什么权限

示例2:去除r权限

ubuntu@VM-0-4-ubuntu:~$ chmod u+x text_dir ubuntu@VM-0-4-ubuntu:~$ ls -ld text_dir drwxrwxr-x 2 ubuntu ubuntu 4096 Sep 28 23:23 text_dir ubuntu@VM-0-4-ubuntu:~$ chmod u-r text_dir ubuntu@VM-0-4-ubuntu:~$ cd text_dir ubuntu@VM-0-4-ubuntu:~/text_dir$ #没有r权限可以进 ubuntu@VM-0-4-ubuntu:~$ ls text_dir ls: cannot open directory 'text_dir': Permission denied #但是不能列举目录中的文件 ubuntu@VM-0-4-ubuntu:~$

4.3 写入或删除文件需要哪些权限

示例3:去除w权限

buntu@VM-0-4-ubuntu:~$ touch text_dir/e.txt ubuntu@VM-0-4-ubuntu:~$ ls -ld text_dir drwxrwxr-x 2 ubuntu ubuntu 4096 Oct 3 13:23 text_dir ubuntu@VM-0-4-ubuntu:~$ chmod u-w text_dir ubuntu@VM-0-4-ubuntu:~$ touch text_dir/f.txt touch: cannot touch 'text_dir/f.txt': Permission denied #没有w权限后不能再写入或删除文件 ubuntu@VM-0-4-ubuntu:~$

上述为本期全部内容,感谢你能够看到这里~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 2:28:07

交易最大的敌人,终于被机制打败

在金融交易市场中,绝大多数交易者的亏损,从来不是败给了行情,而是败给了自己。 无数交易数据和实战案例证明:市场的不确定性并不可怕,人性的确定性弱点才是交易亏损的核心根源。贪婪、恐惧、侥幸、犹豫、冲动、自负&am…

作者头像 李华
网站建设 2026/10/5 2:27:58

2026小程序商城系统哪个好用?判断标准就是这五条

2026年,企业定制开发需求增速达到52%,越来越多的商家不满足于模板建站,开始认真挑选长期经营工具。但问了一圈之后,多数人卡在同一个问题上:宣传页都说自己好用,到底怎么判断?小程序商城系统哪个…

作者头像 李华
网站建设 2026/10/5 2:27:47

垂直领域大模型落地观察:法律AI的合同审阅能力如何评测?

一、背景:为什么值得观察这个场景法律文本强结构化、强引用、强溯源,是检验 RAG(检索增强生成)与知识图谱工程化能力的高价值场景。一个合同审阅类应用的技术链路通常包含四层:要素抽取层:识别合同类型、当…

作者头像 李华
网站建设 2026/10/5 2:27:45

HR 用 AI 一句话搭建招聘管理系统

做HR十年,最怕的不是人难招,是流程烂。 简历散在三个地方,面试安排靠微信群接龙,offer发出去石沉大海没人跟。每年秋招都像打仗,打完仗连战场都收拾不清。 上周试用搭贝,一句话:「给公司建招聘管…

作者头像 李华