“su -”、“sudo bash”和“sudo sh”之间有什么区别?

“su -”、“sudo bash”和“sudo sh”之间有什么区别?

我想知道

  • su -
  • sudo bash
  • sudo sh

我无法在执行操作时以 root 身份登录,su -因为我没有 root 密码 - 我的意思是我有我的用户密码,sudo "command" 但是这个密码不起作用,因为su - 我可以使用我的用户密码以 root 身份登录sudo bash,并且我可以在执行操作时登录sudo sh,但是我得到了这个形式的命令提示符 #

答案1

背景

在 Linux(以及一般的 Unix)中,有一个超级用户命名。超级用户可以做任何事情,因此以超级用户的身份进行日常工作可能会很危险。您可能会错误地输入命令并破坏系统。理想情况下,您以仅具有手头任务所需权限的用户身份运行。在某些情况下,这必须是 Root,但大多数情况下是普通用户。

此命令用于以 root 帐户登录。
默认情况下,Ubuntu 中的 Root 帐户密码是锁定的。这意味着您无法直接以 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) 的有用功能。它旨在符合 IEEE POSIX P1003.2/ISO 9945.2 Shell 和工具标准。它在编程和交互使用方面都比 sh 提供了功能改进。此外,大多数 sh 脚本都可以由 Bash 运行而无需修改。

参考:123

答案2

su -

这将更改您的用户标识符并继承环境变量,就像您以该用户身份登录一样。通常,您将使用格式su - <userid>以用户身份登录。如果您删除“userid”,它会假定您正在尝试以 root 身份登录 - 但您不能这样做(除非您更改 root 密码)。

sudo bash& sudo sh

sudo 之后的任何内容都是要运行的程序 - 因此在这些情况下,您要求运行几个 shell - 分别是 bash 和 dash。使用man bashman sh了解不同 shell 的更多详细信息。


相关问题:

相关内容