虽然之前发过这个知识点,但不久后还是忘了,所以回顾一下:
su 命令的作用是切换用户,其中su是不完全切换(保留当前用户的环境),su – 是完全切换(加载目标用户的环境),切换时都要输入目标用户的密码(root用户除外)
sudo命令的作用是以root(或指定用户)身份执行一条命令,通常不会完整切换成root登录环境,执行时输入用户自己的密码即可(注意需要在sudoers中被授权),可以理解为临时提权跑一条命令。
sudo -i 命令的作用是获得一个root登录的shell(等价于“sudo+模拟root登录”),像su – 一样,使用root的登录环境,执行命令时任然输入用户自己的密码(需要sudoers授权),可以理解为提权并进入root登录环境

(1)su [user]
作用:切换到另一个用户,开启一个新的 shell 会话(默认切到 root)。
密码:通常需要输入目标用户的密码(su – root 就是 root 密码);root 自己 su 到别人不需要密码。
环境:
su user:不算登录式切换,环境多半沿用当前用户。
su – user / su -user:登录式切换,加载目标用户登录环境(更像重新登录)。
特点:更像“直接变成那个用户”。
(2)sudo command
作用:按 sudoers 授权,以 root(默认)或指定用户 身份执行一条命令。
密码:通常输入当前用户自己的密码(不是 root 密码),也可被配置成免密。
环境:默认不会完整切到目标用户的登录环境,通常只给一套受控的环境变量(更安全)。
特点:最小权限、有日志审计、适合日常运维执行特权命令。
(3)sudo -i(注意是 -i)
作用:以 root(默认)获得一个登录式交互 shell,相当于“以 root 登录一次”。
密码:同 sudo,通常输入当前用户自己的密码。
环境:会设置为目标用户(默认 root)的登录环境:HOME、PATH 等按 root 来,并读取登录初始化文件(效果接近 su -)。
特点:适合需要连续执行多条 root 操作时使用(但仍受 sudoers 控制并记录日志)。
总结:
su:直接“换身份”(常要目标用户密码,审计弱)。
sudo:不换会话,只“借权限跑一条命令”(用自己密码,审计强)。
sudo -i:用 sudo 方式拿到“像 root 登录一样”的交互环境(接近 su – 的效果,但仍是 sudo 体系)。
网硕互联帮助中心






评论前必须登录!
注册