‘su – ‘,’sudo bash’和’sudo sh’有什么区别?

我想知道它们之间有什么区别

  • su -
  • sudo bash
  • sudo sh

在做su -我不能以root身份登录su -因为我没有root密码 – 我的意思是我有我的用户密码,我可以sudo "command"但是这个密码对su -不起作用su -我可以用root用户登录sudo bash使用我的用户密码sudo bash ,我可以在执行sudo sh登录,但后来我在这个表单中得到一个命令提示符#

背景

在Linux(以及一般的Unix)中,有一个名为Root超级用户 。 SuperUser可以做任何事情,因此超级用户可能会很危险。 您可以错误地键入命令并销毁系统。 理想情况下,您作为只具有手头任务所需权限的用户运行。 在某些情况下,这必然是Root,但大多数情况下它是普通用户。

苏 –

此命令用于以root帐户登录。
默认情况下,Root帐户密码在Ubuntu中被锁定。 这意味着您无法直接以Root身份登录或使用su命令成为Root用户。 但是,由于Root帐户在物理上存在,因此仍可以使用root级别权限运行程序。 这就是sudo的用武之地 – 它允许授权用户(通常是“管理”用户)以Root身份运行某些程序,而无需知道root密码。

请参见如何启用Root帐户

sudo sh

此命令以超级用户身份运行“sh”。
sh实用程序是一种命令语言解释器,它应执行从命令行字符串,标准输入或指定文件读取的命令。

sudo bash

此命令以超级用户身份运行“bash”。
Bash是shell或命令语言解释器。 Bash是一个兼容sh的shell,它包含了Korn shell(ksh)和C shell(csh)的有用function。 它旨在符合IEEE POSIX P1003.2 / ISO 9945.2 Shell和Tools标准。 它为编程和交互式使用提供了超过sh的function改进。 此外,大多数sh脚本可以由Bash运行而无需修改。

参考文献: 1,2,3 。

su -

这将更改您的用户标识符并inheritance环境变量,就像您已使用该用户登录一样。 通常,您将使用su - 格式以su - 身份登录。 如果删除“userid”,则假定您尝试以root身份登录 – 您不能(除非您更改root密码)。

sudo bashsudo sh

在sudo之后的任何东西都是一个运行的程序 – 所以在这些情况下你要求分别运行两个shell – bash和dash。 使用man bashman sh获取有关不同炮弹的更多细节。


相关问题:

  • 问问Ubuntu 如何知道我的root密码?
  • 堆栈溢出 我应该使用什么Linux shell?