su
是 Linux/Unix 系统中一个重要的命令,全称为 "Switch User"(切换用户)。它允许当前用户在不注销的情况下切换到另一个用户身份(通常是超级用户 root
),并继承目标用户的环境变量和权限。
su [选项] [用户名]
root
用户。选项 | 作用 |
---|---|
- 或 -l 或 --login |
模拟登录目标用户,加载其环境变量(如 HOME , PATH 等) |
-c |
以目标用户身份执行单条命令后退出(例如:su -c "ls /root" root ) |
-s |
指定要运行的 Shell(如 su -s /bin/bash user ) |
切换到 root 用户(需输入 root 密码):
su -
注意:使用
-
会加载 root 的环境变量(推荐方式)。
切换到其他用户(如切换到用户 alice
):
su - alice
以 root 身份执行单条命令:
su -c "apt update" root
返回原用户:
exit
sudo
的区别su
:直接切换到目标用户(需知道目标用户的密码),默认不保留当前环境。sudo
:以目标用户(默认 root)权限执行单条命令(需输入当前用户密码,且需配置权限)。su
登录 root:sudo
分配权限,减少滥用 root 的风险。su
需要目标用户密码,确保密码强度足够高(尤其是 root)。/etc/pam.d/su
或用户组设置。如果需要进一步限制 su
的使用,可以通过 /etc/pam.d/su
或 wheel
用户组(某些系统)进行配置。