su和bash之间的区别

当我访问networking服务器时,我使用命令sudo su来获得pipe理员权限。 最近我发现sudo bash是正确的命令,并且会允许我没有su权限。

sudo susudo bash什么区别? 我以为两者都是相同的。

当您执行sudo su将启动可能是Bourne shell(sh)的root用户的默认shell。 你可以做sudo -s来获得当前用户的默认shell。

你以后错过了什么特权

 sudo su 

? 这可能是因为你没有在这个命令之后build立根环境。 如果你这样做

 sudo su - 

(注意“ – ”),那么根用户的configuration文件将被读取,并且环境(其中包括PATHvariables)将被设置,就好像你已经以rootlogin一样。 如果你运行sudo su ,你保持你的环境,并得到0的有效uid,这意味着你没有根环境设置root用户的权限。 sudo su -将当前目录更改为根目录的主目录,因此如果我想在当前目录中执行几个命令(例如,更改文件的所有者)而不必键入长path,则使用sudo su。