在Linux中Sudo和Su之间的区别是什么?

image

如果你是Linux用户,你可能已经看到了对sudo和su的引用。 文章在这里的How-To Geek和其他地方指示Ubuntu用户使用sudo和其他Linux发行版的用户使用su,但有什么区别?

Sudo和su是两种不同的方式来获得root权限。 每个功能以不同的方式,并且不同的Linux发行版默认使用不同的配置。

根用户

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

要做某些需要这些权限的事情,你必须使用su或sudo来获取它们。

Su和Sudo

在没有其他选项的情况下执行su命令时,su命令切换到超级用户或root用户。 您必须输入root帐户的密码。 这不是所有的su命令,但是 - 你可以使用它切换到任何用户帐户。 如果执行苏鲍勃命令,你会被提示输入Bob的密码和外壳将切换到Bob的用户帐户。

一旦你完成运行在root shell命令,你应该输入exit退出 root的shell并返回到有限的特权模式。

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

image

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

Ubuntu与其他Linux发行版

su命令是在Linux上获取root权限的传统方法。 sudo命令已经存在了很长时间,但是Ubuntu是第一个流行的Linux发行版,默认情况下只能sudo。 当您安装Ubuntu时,将创建标准root帐户,但不会为其分配任何密码。 您不能以root用户身份登录,直到您为root帐户分配密码。

image

默认情况下,使用sudo而不是su有几个好处。 Ubuntu用户只需提供并记住单个密码,而Fedora和其他发行版需要在安装过程中创建单独的root和用户帐户密码。

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

基于Ubuntu的分发(包括Linux Mint)在默认情况下也使用sudo而不是su。

一个小技巧

Linux是灵活的,所以它不需要太多的工作使su工作类似于sudo - 反之亦然。

要使用su作为root用户运行单个命令,请运行以下命令:

su -ccommand

这类似于使用sudo运行命令,但是您需要root帐户的密码,而不是当前用户帐户的密码。

要获得使用sudo一个完整的,互动的root shell,执行sudo -i。

image

您必须提供您当前的用户帐户密码,而不是root帐户的密码。

在Ubuntu中启用根用户

要在Ubuntu上启用root用户帐户,请使用以下命令为其设置密码。 记住,Ubuntu建议反对这一点。

sudo passwd根

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

image

将用户添加到Sudoers文件

只有Ubuntu中的管理员类型帐户可以使用sudo运行命令。 您可以从“用户帐户”配置窗口更改用户帐户的类型。

image

Ubuntu自动将安装期间创建的用户帐户指定为管理员帐户。

image

如果你使用的是其他Linux发行版,您可以授予运行,以root权限visudo命令使用sudo用户权限(所以首先运行su或使用su -c)。

添加下面一行到文件中,与用户帐户的名称替换用户

用户ALL =(ALL:ALL)ALL

Ctrl-X,然后Y保存该文件。 您可能还能够将用户添加到组文件中指定。 文件中指定的组中的用户将自动具有sudo权限。

image

图形化的版本

Linux还支持su的图形化版本,它在图形环境中请求您的密码。 例如,您可以运行以下命令获取图形密码提示,并使用root权限运行Nautilus文件浏览器。 Alt-F2来,而无需启动一个终端运行图形运行对话框的命令。

gksu鹦鹉螺

image

gksu命令还有一些其他的技巧,它保留了当前的桌面设置,所以图形程序不会看起来不当的地方,当他们作为一个不同的用户启动。 诸如gksu之类的程序是以root权限启动图形应用程序的首选方式。

Gksu使用基于su或sudo的后端,这取决于您使用的Linux发行版。


你现在应该准备好同时遇到su和sudo! 如果您使用不同的Linux发行版,您将会遇到这两种情况。

赞 (0)
分享到:更多 ()