sudo -i和sudo su的区别是什么?

来源:3-10 用户和权限

wststine

2020-03-06

sudo -i和sudo su的区别是什么?

写回答

1回答

Oscar

2020-03-08

  • sudo 命令:暂时成为 root

sudo 是英语 Substitute User DO 的缩写,substitute 是“替换,代替,替身”的意思,user 是“用户”的意思,do 就是“做”的意思。所以连在一起就是“替换用户来执行...”的意思。因此,如果我们要运行只有 root 才可以运行的命令,那么可以在此命令前面加上 sudo 命令。

  • su 命令是 substitute user 的缩写,表示“替换用户”。例如你现在是 oscar 用户,你想切换成 thomas 用户,就可以运行命令 su thomas,然后输入 thomas 用户的密码,就切换为 thomas 用户的身份了。切换成 thomas 用户后,还是位于当前的目录,并不会切换到 thomas 用户的家目录。

man sudo

man su

查看 sudo 和 su 命令的手册,其实是很清楚的。


su 命令如果后面不加要切换成的用户名,默认是切换为 root 用户。

所以 sudo su 是用于永久地切换为 root 用户身份。只需要输入当前用户密码即可。切换成 root 用户后,还是位于当前的目录,并不会切换到 root 用户的家目录。

//img.mukewang.com/szimg/5e64bb2409936d7e11080906.jpg

而 sudo -i 也可以永久切换为 root 用户,也是只需要输入当前用户的密码即可。但是,切换成 root 用户后,会从当前的目录切换到 root 用户的家目录。

//img.mukewang.com/szimg/5e64bb30093906c410460390.jpg

而 su - 也是永久切换为 root 用户,但是却需要输入 root 用户的密码才行。切换成 root 用户后,会从当前的目录切换到 root 用户的家目录。

//img1.sycdn.imooc.com/szimg/5e64bb3a09984e3a16000544.jpg

---

你实际测试一下,并结合 man 手册,就明白了。

3
1
wststine
谢谢老师!太详细了!
2020-03-12
共1条回复

Linux核心技能与应用

一网打尽Linux必备核心技能,面试、升职必备的“敲门砖”。

2089 学习 · 692 问题

查看课程