Linux 中的 Sudo 和 Su 有什么区别?

已发表: 2022-01-29

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

sudo 和 su 是获得 root 权限的两种不同方式。 每个功能都有不同的方式,不同的 Linux 发行版默认使用不同的配置。

根用户

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

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

苏与须藤

su 命令会在您执行时切换到超级用户(或 root 用户),而无需其他选项。 您必须输入 root 帐户的密码。 不过,这并不是 su 命令的全部功能——您可以使用它来切换到任何用户帐户。 如果您执行su bob命令,系统会提示您输入 Bob 的密码,并且 shell 将切换到 Bob 的用户帐户。

广告

在 root shell 中运行完命令后,您应该键入exit以离开 root shell 并返回到受限权限模式。

Sudo 以 root 权限运行单个命令。 当您执行sudo command时,系统会在以 root 用户身份运行command之前提示您输入当前用户帐户的密码。 默认情况下,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。

一些技巧

Linux 是灵活的,因此不需要太多工作就可以让 su 与 sudo 一样工作——反之亦然。

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

su -c '命令'

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

要使用 sudo 获得完整的交互式 root shell,请运行sudo –i。

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

在 Ubuntu 中启用 Root 用户

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

须藤密码根

广告

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

将用户添加到 Sudoers 文件

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

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

如果您使用的是另一个 Linux 发行版,您可以通过以 root 权限运行visudo命令来授予用户使用 sudo 的权限(因此首先运行su或使用su -c )。

将以下行添加到文件中,将user替换为用户帐户的名称:

用户全部=(全部:全部)全部

广告

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

苏的图形版本

Linux 还支持图形版本的 su,它会在图形环境中询问您的密码。 例如,您可以运行以下命令以获取图形密码提示并以 root 权限运行 Nautilus 文件浏览器。 按Alt-F2从图形运行对话框运行命令,而不启动终端。

gksu鹦鹉螺

gksu 命令还有其他一些技巧——它保留了您当前的桌面设置,因此当您以其他用户身份启动图形程序时,它们不会显得格格不入。 gksu 等程序是使用 root 权限启动图形应用程序的首选方式。

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


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

相关:适合开发人员和爱好者的最佳 Linux 笔记本电脑