一、Linux 权限的核心概念
1.1 两种用户:超级用户与普通用户
超级用户与普通用户的权限差距极大。
- 超级用户:可以在 Linux 系统下做任何事情,不受限制。命令提示符是
#。 - 普通用户:在 Linux 下做有限的事情。命令提示符是
$。
命令:
su [用户名]功能:切换用户。
如何从普通用户变为超级用户 (root)
su: 省略目标用户时,默认尝试切换到 root(根用户),仅切换身份,不加载 root 的环境变量。
lisi@hcss-ecs-1cde:/root$ su
Password: root@hcss-ecs-1cde:~#
su -: 切换到指定用户并加载其完整环境。
lisi@hcss-ecs-1cde:/root$ su -
Password: root@hcss-ecs-1cde:~#
如何从超级用户变为普通用户
因为 root 权限,无需密码。
root@hcss-ecs-1cde:~# su lisi
lisi@hcss-ecs-1cde:/root$
| 对比维度 | su(切换到 root) | su - / su - root(切换到 root) |
|---|---|---|
| 环境变量加载 | 仅切换用户身份,保留原用户的环境变量(如 PATH、HOME、PWD 等),仅 UID/EUID 变为 root | 完全加载 root 用户的环境变量(读取 /root/.bash_profile/.bashrc 等配置),等同于直接登录 root |
| 当前工作目录 | 保持切换前的目录(如原在 /home/lisi,切换后仍在此) | 切换到 root 的家目录(/root) |
| 命令搜索路径(PATH) | 沿用原用户的 PATH(可能缺少 root 专属命令路径,如 /sbin/usr/sbin) | 使用 root 的 PATH(包含 /sbin/usr/sbin 等系统管理命令路径) |
| 配置文件执行 | 不执行 root 的登录脚本(.bash_profile/.profile) | 执行 root 的登录脚本,加载 root 专属配置 |
| 本质含义 | '切换用户身份,但不切换环境' | '切换用户身份并完全切换到目标用户的登录环境' |
| 权限操作兼容性 | 可能因环境变量问题,部分 root 命令执行失败(如 systemctl/fdisk) | 所有 root 命令均可正常执行,无环境兼容问题 |


