09. Linux文件权限与用户管理

Linux 是一个多用户操作系统,它对"谁"能对"什么文件"做"什么事"有着极其严格的控制。这就是权限 (Permissions)。

1. 理解 ls -l 的输出

在终端输入 ls -l,你会看到类似这样的输出:
drwxr-xr-x 2 user user 4096 Jan 1 12:00 Documents

我们主要关注第一列 drwxr-xr-x,它决定了权限。

  • 第 1 位: 文件类型。d 代表目录 (Directory),- 代表普通文件。
  • 第 2-4 位 (rwx): 所有者 (Owner) 的权限。
  • 第 5-7 位 (r-x): 所属组 (Group) 的权限。
  • 第 8-10 位 (r-x): 其他人 (Others) 的权限。

rwx 的含义:

  • r (Read): 读。对文件是查看内容,对目录是列出文件名。
  • w (Write): 写。对文件是修改内容,对目录是新建/删除文件。
  • x (Execute): 执行。对文件是运行脚本/程序,对目录是进入该目录。

2. 修改权限:chmod

chmod (Change Mode) 用于修改文件权限。

方式一:数字法(最常见)

  • r = 4
  • w = 2
  • x = 1
  • 无 = 0

例如 rwx = 4+2+1 = 7,r-x = 4+0+1 = 5。
chmod 755 file 意味着:所有者(7=rwx),组(5=rx),其他人(5=rx)。

方式二:符号法

  • u (User), g (Group), o (Others), a (All)
  • +(添加), - (移除), = (设置)
chmod +x script.sh      # 给所有人添加执行权限 (最常用)
chmod u+w file.txt      # 给所有者添加写权限
chmod o-r secret.txt    # 移除其他人的读权限

3. 超级用户:Root 与 Sudo

在 Linux 中,有一个神一般的存在叫 Root。它可以做任何事,包括删掉整个系统。
为了安全,Ubuntu 默认锁定了 Root 账户,普通用户只能通过 sudo (SuperUser DO) 来临时获得管理员权限。

  • 什么时候用 sudo?
    当你要安装软件、修改系统配置、编辑 /etc 下的文件时。
  • 怎么用?
    在命令前加上 sudo。
sudo apt update

系统会要求你输入你的密码(输入时屏幕不会显示星号,盲打完回车即可)。

一个实用习惯:能不用 sudo 就不用。很多“权限不够”的问题,其实是文件所有者/所属组不对,优先用 chown 把所有权修正,再谈 chmod。

4. 用户与组管理

chown (Change Owner)

改变文件的所有者。

sudo chown user:group file.txt
sudo chown -R user:user /var/www/html  # 递归修改文件夹所有者

useradd / adduser

创建新用户。推荐用 adduser,它有交互式向导,更友好。

sudo adduser newuser

usermod

修改用户属性。最常用的是把用户加入 sudo 组,赋予管理员权限。

sudo usermod -aG sudo newuser

理解了权限,你就理解了为什么 Linux 比 Windows 安全。在 Linux 里,病毒想运行?先问问 chmod 答不答应。

小白Ubuntu教程 · 目录

01. 为什么要选择 Linux/Ubuntu?

02. Ubuntu准备工作与安装方式选择

03. 手把手教你安装 Ubuntu 24.04 LTS

04. GNOME 桌面环境初探

05. 软件安装与管理:告别 .exe

06. 中文环境配置与输入法

07. 办公与生产力工具

08. Linux终端 (Terminal) 的第一步

3 个赞

curl Copy Fail: 732 Bytes to Root on Linux - Xint | python3 && su

2 个赞

Copy Fail (CVE-2026-31431 )是 Linux 内核身份验证加密模板中的一个逻辑漏洞。它允许非特权本地用户触发对系统上任何可读文件的页面缓存进行确定性的、受控的 4 字节写入。一个 732 字节的 Python 脚本即可编辑 setuid 二进制文件,并在 2017 年以来发布的几乎所有 Linux 发行版上获得 root 权限。

内核不会将损坏的页面标记为脏页以进行回写,因此磁盘上的文件保持不变,普通的磁盘校验和比较也无法检测到修改。然而,访问文件时实际读取的是页面缓存,因此内存中损坏的版本会立即在整个系统中可见。本地非特权用户可以通过破坏 setuid 二进制文件的页面缓存来获得 root 权限。同样的原理也适用于跨容器边界的情况,因为页面缓存是主机共享的。

这项发现得益于人工智能的辅助,但其灵感源于Theori研究员Taeyang Lee的一项研究。他当时正在研究Linux加密子系统如何与页面缓存支持的数据交互。他利用Xint Code将研究扩展到整个加密子系统,而“复制失败”(Copy Fail)是报告中最关键的发现。

1 个赞