Logo 服务器应用笔记

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 登录环境
  • whoamiroot
  • 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 登录 shellsudo -i
快速 root 身份执行系列命令sudo su
无 sudo 系统中切换 rootsu -

📌 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 #用户切换