linux中su和sudo的区别

root用户

su和sudo都用于运行具有root权限的命令。root用户基本上等同于Windows上的管理员用户 - root用户具有最大权限,可以对系统执行任何操作。Linux上的普通用户以较低的权限运行 - 例如,他们无法安装软件或写入系统目录。

要执行需要这些权限的操作,您必须使用su或sudo获取它们

su与sudo

su命令在执行它时切换到超级用户(或root用户),没有其他选项。您必须输入root帐户的密码。但这并不是所有su命令都可以 - 您可以使用它来切换到任何用户帐户。如果执行su bob命令,系统将提示您输入Bob的密码,shell将切换到Bob的用户帐户。

完成在root shell中运行命令后,应键入exit以退出root shell并返回限制权限模式。

Sudo使用root权限运行单个命令。执行sudo命令时,系统会以root用户身份运行命令之前提示您输入当前用户帐户的密码。默认情况下,Ubuntu会记住十五分钟的密码,并且在十五分钟结束之前不会再次要求输入密码。

这是su和sudo之间的关键区别。Su将您切换到root用户帐户并需要root帐户的密码。Sudo使用root权限运行单个命令 - 它不会切换到root用户或需要单独的root用户密码。

Ubuntu与其他Linux发行版

su命令是在Linux上获取root权限的传统方式。sudo命令已经存在了很长时间,但是Ubuntu是第一个默认使用sudo的流行的Linux发行版。安装Ubuntu时,会创建标准root帐户,但不会为其分配密码。在为root帐户分配密码之前,无法以root身份登录。
默认情况下使用sudo而不是su有几个优点。Ubuntu用户只需提供并记住单个密码,而Fedora和其他发行版要求您在安装期间创建单独的root和用户帐户密码。

另一个优点是它不鼓励用户以root用户身份登录 - 或者使用su来获取root shell - 并保持root shell打开以正常工作。以root身份运行较少的命令可提高安全性并防止意外的系统范围更改。

基于Ubuntu的发行版,包括Linux Mint,默认情况下也使用sudo而不是su。

在Ubuntu中启用Root用户
要在Ubuntu上启用root用户帐户,请使用以下命令为其设置密码。请记住,Ubuntu建议不要这样做。

sudo passwd root

在设置新密码之前,Sudo会提示您输入当前用户帐户的密码。使用新密码从终端登录提示符或su命令以root用户身份登录。您永远不应该以root用户身份运行完整的图形环境 - 这是一个非常糟糕的安全实践,许多程序将拒绝工作。

原文连接:
https://www.howtogeek.com/111479/htg-explains-whats-the-difference-between-sudo-su/

猜你喜欢

转载自blog.csdn.net/weixin_42511828/article/details/85046965