云计算百科
云计算领域专业知识百科平台

su 、sudo、 sudo -i 的区别

虽然之前发过这个知识点,但不久后还是忘了,所以回顾一下:

        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 体系)。

赞(0)
未经允许不得转载:网硕互联帮助中心 » su 、sudo、 sudo -i 的区别
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!