权限管理
root 与权限层级
Linux 是多用户操作系统,权限管控是其安全基石。
- root(超级管理员):拥有系统最高权限,可操作任何文件、修改任何配置、管理任何进程。普通用户的权限严格受限,仅能操作自己的家目录(
/home/用户名)及系统允许的临时目录(如/tmp)。
切换用户的方式:
| 命令 | 说明 |
|---|---|
su - [用户名] | 切换用户。- 表示同时加载目标用户的环境变量(建议始终加 -),省略用户名默认切换为 root。退出用 exit。 |
sudo 其他命令 | 以 root 权限执行单条命令。需在 /etc/sudoers 中配置授权(Arch 默认 wheel 组用户可用 sudo)。 |
sudo -i | 提权后以 登录 Shell 方式进入 root 环境,加载 /root/.bashrc,切换到 /root 目录。比 sudo -s 更干净,推荐持续 root 时使用。 |
sudo -s | 提权后起一个 Shell,但继承当前用户的环境变量和工作目录,可能导致 PATH 错乱。 |
补充:
su需要目标用户密码,sudo只需自己的密码且可细粒度授权。
run0(systemd 255+,Arch 可用):systemd新提供的提权工具,不依赖 SUID,通过systemd-run创建独立隔离会话,环境更干净且日志可追踪。用法同sudo,目前尚未普及,知晓即可。
用户与用户组
Linux 的权限控制有两个维度:针对用户 和 针对用户组。一个用户可以属于多个组,但有一个主组(默认与用户名同名)。
以下命令均需 root 权限:
| 操作 | 命令 | 说明 |
|---|---|---|
| 创建用户组 | groupadd 组名 | |
| 删除用户组 | groupdel 组名 | |
| 创建用户 | useradd [-g 组] [-d 路径] 用户名 | -g 指定主组(默认创建同名组),-d 指定家目录(默认 /home/用户名) |
| 删除用户 | userdel [-r] 用户名 | -r 同时删除家目录;不加则家目录保留 |
| 查看用户信息 | id [用户名] | 显示 UID、GID 及所属组列表;省略则查看自身 |
| 将用户加入组 | usermod -aG 组名 用户名 | -aG 追加附加组(不加 -a 会覆盖原有附加组) |
| 查看所有用户 | getent passwd | 返回 7 个字段:用户名:密码占位:UID:GID:描述:家目录:登录Shell |
| 查看所有组 | getent group | 返回:组名:密码占位:GID:成员列表 |
权限信息的结构与含义


ls -l 输出示例:drwxr-xr-x 2 alice dev 4096 Jul 11 10:00 myfolder
第一段(10 个槽位) 表示文件类型与权限:
| 槽位 | 含义 |
|---|---|
| 第 1 位 | 文件类型:- 普通文件,d 目录,l 软链接 |
| 第 2~4 位 | 所属用户(u) 的权限:读(r)、写(w)、执行(x) |
| 第 5~7 位 | 所属用户组(g) 的权限 |
| 第 8~10 位 | 其他用户(o) 的权限 |
权限对文件 vs 目录的影响:
| 权限 | 对文件的作用 | 对目录的作用 |
|---|---|---|
r(读) | 查看文件内容 | 列出目录下文件名(需要 x 配合才能进入) |
w(写) | 修改文件内容 | 在目录内创建/删除/重命名文件(需要 x 配合才能进入) |
x(执行) | 将文件作为程序运行 | 进入目录(cd)并访问其子项 |
关键认知:对目录的
w权限仅允许修改目录条目本身,与目录内文件的权限无关。删除一个文件,取决于目录的 w 权限,而非文件自身的 w 权限。

修改权限:chmod
只有文件所属用户或 root 可以修改权限。
基础语法:chmod [-R] 权限 目标
-R:递归修改目录内所有子项。
字母表示法(u/g/o/a):
| 操作 | 示例 | 含义 |
|---|---|---|
赋值 = | chmod u=rwx,g=rx,o=r file | 用户:rwx,组:r-x,其他:r— |
增加 + | chmod u+x file | 给所属用户增加执行权限 |
移除 - | chmod o-w file | 移除其他用户的写权限 |
全部 a | chmod a+x file | 给所有角色增加执行权限 |
数字序号记法
将 rwx 视为二进制位:r=4,w=2,x=1,三者相加得到一个 0~7 的数字。三位数字分别对应 用户 / 组 / 其他。
| 数字 | 权限组合 | 含义 |
|---|---|---|
| 7 | rwx | 读+写+执行 |
| 6 | rw- | 读+写 |
| 5 | r-x | 读+执行 |
| 4 | r-- | 只读 |
| 3 | -wx | 写+执行 |
| 2 | -w- | 只写 |
| 1 | --x | 仅执行 |
| 0 | --- | 无权限 |
示例:chmod 755 script.sh → 用户 rwx,组 r-x,其他 r-x。
chmod 600 secret.txt → 用户 rw-,组和其他无权限。
修改所属权:chown
只有 root 可以修改文件所属用户和组。
基础语法:chown [-R] [用户][:][组] 目标
| 命令 | 效果 |
|---|---|
chown root file | 所属用户改为 root,组不变 |
chown :root file | 所属组改为 root,用户不变 |
chown root:test file | 用户改为 root,组改为 test |
chown -R alice:dev folder/ | 递归修改目录内所有内容 |
补充:chroot — 改变进程根目录
chroot 新根 [命令] 将进程的 / 临时替换为指定目录,用于系统修复(U盘启动后挂载硬盘分区执行 chroot /mnt)或构建最小化隔离环境。需 root 权限,仅隔离文件系统视图,不隔离进程与网络。