当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

我想知道两者之间有什么区别

  • su -

  • sudo bash

  • sudo sh

我在执行su时无法以root身份登录-因为我没有root密码-我的意思是我拥有可以使用sudo “command”的用户密码,但是该密码不适用于su-我可以使用sudo bash以root身份登录我的用户密码,我可以在执行sudo sh时登录,但是随后我收到以下格式的命令提示符:

最佳方案

背景

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

su-

此命令用于以root帐户登录。默认情况下,root帐户密码在Ubuntu中是锁定的。这意味着您不能直接以Root身份登录,也不能使用su命令成为Root用户。但是,由于Root帐户实际上存在,因此仍然可以运行具有root-level特权的程序。这就是sudo的用处-它允许授权用户(通常是”Administrative”用户)以root身份运行某些程序,而无需知道root密码。

请参阅How to Enable Root Account

须藤

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

须藤bash

此命令以超级用户身份运行”bash”。 Bash是 shell 程序或命令语言解释器。 Bash是sh-compatible shell ,它结合了Korn shell (ksh)和C shell (csh)的有用功能。它旨在符合IEEE POSIX P1003.2 /ISO 9945.2 Shell and Tools标准。它在sh上提供了功能上的改进,可用于编程和交互使用。另外,大多数sh脚本可以由Bash运行,而无需修改。

参考:123

次佳方案

su -

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

sudo bash& sudo sh

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


相关问题:

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8219.html,未经允许,请勿转载。