Linux 用户切换与提权命令详解
Linux 用户切换与提权命令详解#
🧭 背景#
在日常 Linux(含 Synology DSM)使用中,经常需要从普通用户切换为 root 用户,或以管理员权限执行命令。以下是各种命令的作用、区别与推荐使用场景。
🧪 各种用户切换命令比较#
命令 | 含义 | 是否切换用户 | 是否切换环境 | 是否需要密码 |
---|---|---|---|---|
sudo -i | 以 root 身份打开登录 Shell | ✅ 是 | ✅ 是 | ✅ sudo 密码 |
sudo su | 使用 sudo 提权后切换 root | ✅ 是 | ❌ 否 | ✅ sudo 密码 |
su - | 切换为 root 并加载环境 | ✅ 是 | ✅ 是 | ✅ root 密码 |
su root | 切换为 root(不加载环境) | ✅ 是 | ❌ 否 | ✅ root 密码 |
sudo root | ❌ 错误命令,尝试执行 root 命令 | ❌ 否 | ❌ 否 | ❌ 无效 |
🔍 详细说明#
✅ sudo -i
#
sudo -i
- 获取 完整 root 登录环境
whoami
→root
pwd
→/root
- 加载
/root/.profile
、环境变量等 - 推荐使用:安全、干净、兼容性好
✅ sudo su
#
sudo su
- 切换为 root 用户
- 继承当前用户环境(如 PATH、家目录)
pwd
通常仍是原用户目录- 使用方便但环境非 root 专属
✅ su -
(或 su root -
)#
su -
- 需要输入 root 密码
- 切换为完整 root 用户 Shell
- 加载 root 环境配置
- 在无 sudo 的系统中常用
✅ su root
#
su root
- 与
su -
类似,但 不加载 root 的环境变量 - shell 行为可能不一致(如缺 PATH)
❌ sudo root
#
sudo root
- 错误用法:尝试执行名为
root
的程序 - 报错:
sudo: root: command not found
🧩 选择推荐#
场景 | 推荐命令 |
---|---|
执行单条管理员命令 | sudo <cmd> |
启动 root 登录 shell | sudo -i |
快速 root 身份执行系列命令 | sudo su |
无 sudo 系统中切换 root | su - |
📌 Synology DSM 特别说明#
- 默认启用
sudo
,用户ding
属于administrators
可用 - 默认禁用 root SSH 登录,但支持
sudo -i
- 设置 root 密码(如需要):
sudo passwd root
✅ 示例验证#
ding@Syno:~$ sudo -i
root@Syno:~# whoami
root
root@Syno:~# pwd
/root
ding@Syno:~$ sudo su
ash-4.4# whoami
root
ash-4.4# pwd
/volume1/homes/ding
ding@Syno:~$ su -
Password:
root@Syno:~# pwd
/root
🗂️ 标签#
#Linux #权限管理 #sudo #root #Synology #用户切换