【Linux】Linux 的权限:你必须掌握的文件安全基础

Linux 的权限:你必须掌握的文件安全基础

在 Linux 世界里,一切皆文件。

但如果每个人都能随意读取、修改甚至删除别人的文件,系统岂不是乱成一锅粥?

这就是 Linux 权限系统 存在的原因------它是保证多用户系统安全与秩序的基石。

今天我们就来介绍一下权限的概念。


一、为什么 Linux 需要权限系统?

Linux 是一个 多用户、多任务 操作系统。

一个系统里可能同时有管理员(root)、普通用户、开发人员、运维人员等。

在技术公司内部的服务器就会这样划分,每个身份各司其职,使得服务器能够确保正常运行。

那我们知道,权限的诞生就应该源于不同职责只能履行自己职位上的功能,而不能越界

在这种环境下:

  • 你的项目代码不应该被陌生用户随便篡改
  • 系统配置文件不能被普通用户误删
  • 可执行程序应该避免被恶意替换

Linux 的权限机制,就是为了定义 谁能做什么


二、权限的三要素

Linux 将权限分成三个 对象(谁) 和三种 操作(能做什么)

1. 对象(角色)

  1. u(user) → 文件的拥有者
  2. g(group) → 文件所在的用户组成员
  3. o(others) → 除了拥有者和组内成员以外的所有人

2. 操作(权限类型)

  1. r(read) → 读取权限

    • 对文件:查看内容
    • 对目录:列出文件名
  2. w(write) → 写入权限

    • 对文件:修改内容
    • 对目录:创建、删除、重命名文件
  3. 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--)

六、修改文件的"谁" ------ chownchgrp

权限针对的"人"是有具体身份的,所以我们还可以改变文件的拥有者和所属组。

  • chown 用户名 文件名 → 修改文件的拥有者
  • chgrp 用户组 文件名 → 修改文件所属组
  • chown 用户名:用户组 文件名 → 同时修改拥有者和用户组

例子:

bash 复制代码
chown alice:dev report.txt

意思是:

  • 文件拥有者变成 alice
  • 文件所属组变成 dev

七、权限与安全

所谓的权限,肯定主要就是为了保证安全设置的,有了权限,就相当于有了多层保障。

常见的安全原则举几个例子:

  • 系统关键文件设置为 root 专属 (例如 /etc/passwd
  • 公开文件夹赋予最小化权限
  • 只给可执行程序必要的执行权限,避免被恶意执行

八、总结一下~

记个口令,方便以后使用~

UGO 三角色,RWX 三操作,数字表示更快捷。

掌握它,你不仅能读懂 -rwxr-xr--,还能灵活运用 chmodchown 等命令,是不是很nice?

相关推荐
Johny_Zhao9 分钟前
Rsync + Sersync 实时数据同步方案
linux·网络安全·信息安全·云计算·rsync·系统运维·sersync
花小璇学linux28 分钟前
imx6ull-驱动开发篇15——linux自旋锁
linux·驱动开发·嵌入式软件
zhangxiaomm29 分钟前
Ubuntu 搭建 yolov5
linux·yolo·ubuntu
skywalk816336 分钟前
Ubuntu24.04启动后显示:推荐安装输入法面板这个Gnome Shell,否则可能无法看到输入法窗口 extension/261/kimpanel
linux·运维·服务器
yeshan1 小时前
使用 iFLOW-CLI GitHub Action 和 Qwen3-Coder 给 GitHub 仓库生成幻灯片风格的文档站点
github·ai编程·掘金·金石计划
网硕互联的小客服1 小时前
CentOS8 Stream 网卡配置及重启
linux·运维·服务器
www.021 小时前
在ubuntu服务器下安装cuda和cudnn(笔记)
linux·ubuntu·cuda·cudnn·服务器环境
七月稻草人1 小时前
飞算JavaAI:人工智能与Java的创新融合与应用前景
开发语言·人工智能·ai编程·java开发·飞算javaai炫技赛
早睡冠军候选人2 小时前
Linux高级逻辑卷配置
linux·云原生
青草地溪水旁2 小时前
Linux 信号处理标志sa_flags详解
linux·信号处理