Linux 的权限:你必须掌握的文件安全基础
在 Linux 世界里,一切皆文件。
但如果每个人都能随意读取、修改甚至删除别人的文件,系统岂不是乱成一锅粥?
这就是 Linux 权限系统 存在的原因------它是保证多用户系统安全与秩序的基石。
今天我们就来介绍一下权限的概念。
一、为什么 Linux 需要权限系统?
Linux 是一个 多用户、多任务 操作系统。
一个系统里可能同时有管理员(root)、普通用户、开发人员、运维人员等。
在技术公司内部的服务器就会这样划分,每个身份各司其职,使得服务器能够确保正常运行。
那我们知道,权限的诞生就应该源于不同职责只能履行自己职位上的功能,而不能越界。
在这种环境下:
- 你的项目代码不应该被陌生用户随便篡改
- 系统配置文件不能被普通用户误删
- 可执行程序应该避免被恶意替换
Linux 的权限机制,就是为了定义 谁能做什么。
二、权限的三要素
Linux 将权限分成三个 对象(谁) 和三种 操作(能做什么) 。
1. 对象(角色)
- u(user) → 文件的拥有者
- g(group) → 文件所在的用户组成员
- o(others) → 除了拥有者和组内成员以外的所有人
2. 操作(权限类型)
-
r(read) → 读取权限
- 对文件:查看内容
- 对目录:列出文件名
-
w(write) → 写入权限
- 对文件:修改内容
- 对目录:创建、删除、重命名文件
-
x(execute) → 执行权限
- 对文件:当作程序运行
- 对目录:进入(
cd
)
三、权限的查看方式 ------ 看懂 -rwxr-xr--
在 Linux 里,我们可以用:
bash
ls -l
来查看文件权限,它会显示类似这样的内容:
diff
-rwxr-xr--
这个字符串就是文件的权限信息,我们把它拆开来看:
位置 | 含义 | 例子 |
---|---|---|
第 1 位 | 文件类型 | - 表示普通文件,d 表示目录,l 表示软链接 |
第 2~4 位 | 文件拥有者(user)的权限 | rwx → 读、写、执行 |
第 5~7 位 | 所属用户组(group)的权限 | r-x → 读、执行(无写权限) |
第 8~10 位 | 其他用户(others)的权限 | r-- → 只读 |
注:在对于用户的权限说明中,"-"指的是在这个位置上的权限它无法实现。
所以:
diff
-rwxr-xr--
意思是:
对于一个普通文件来说:
- 拥有者(user) :rwx → 可以读、写、执行
- 组内成员(group) :r-x → 可以读、执行,但不能改
- 其他人(others) :r-- → 只能读
四、数字表示法 ------ 用三位数快速表示权限
Linux 还有一种数字方式表示权限,把 rwx 转成数字:
- r(read) = 4
- w(write) = 2
- x(execute) = 1
三种权限加起来就是一个数字:
- rwx = 4 + 2 + 1 = 7
- r-x = 4 + 0 + 1 = 5
- r-- = 4 + 0 + 0 = 4
例如:
bash
chmod 754 file.txt
拆解:
- user = 7(rwx → 读、写、执行)
- group = 5(r-x → 读、执行)
- others = 4(r-- → 只读)
这样数字法很适合一次性设置三类用户的权限。
这是为什么呢?因为我们发现每一类用户就只对应一个数字,无需再多次判断。而且数字越大,权限就越大,也可以便于理解。
五、修改权限 ------ chmod
的两种用法
Linux 提供了 chmod
命令来修改文件权限。
前面我们已经知道了三种用户,在指令中可以直接用缩写"u"、"g"、"o"来代替。
1. 符号法(适合局部调整)
chmod u+x file.txt
→ 给拥有者(user)加执行权限chmod g-w file.txt
→ 去掉组内成员的写权限chmod o=r file.txt
→ 让其他用户只有读权限
2. 数字法(适合一次性设置)
chmod 755 file.txt
→ user=7(rwx),group=5(r-x),others=5(r-x)chmod 644 file.txt
→ user=6(rw-),group=4(r--),others=4(r--)
六、修改文件的"谁" ------ chown
和 chgrp
权限针对的"人"是有具体身份的,所以我们还可以改变文件的拥有者和所属组。
chown 用户名 文件名
→ 修改文件的拥有者chgrp 用户组 文件名
→ 修改文件所属组chown 用户名:用户组 文件名
→ 同时修改拥有者和用户组
例子:
bash
chown alice:dev report.txt
意思是:
- 文件拥有者变成 alice
- 文件所属组变成 dev
七、权限与安全
所谓的权限,肯定主要就是为了保证安全设置的,有了权限,就相当于有了多层保障。
常见的安全原则举几个例子:
- 系统关键文件设置为 root 专属 (例如
/etc/passwd
) - 公开文件夹赋予最小化权限
- 只给可执行程序必要的执行权限,避免被恶意执行
八、总结一下~
记个口令,方便以后使用~
UGO 三角色,RWX 三操作,数字表示更快捷。
掌握它,你不仅能读懂 -rwxr-xr--
,还能灵活运用 chmod
、chown
等命令,是不是很nice?