在 debian 8.1 中,为什么超级用户使用 su 而不是 sudo 运行?

在 debian 8.1 中,为什么超级用户使用 su 而不是 sudo 运行?

su我很好奇为什么运行超级用户命令而不是超级用户执行( sudo)。

答案1

susudo是作为另一个用户(可能是 root)运行程序(可能是 shell)的两种最常见的方法。它们具有相同的效果,但在如何确定是否允许该操作方面,它们的工作方式非常不同:

  • su要求源用户是 root,或者用户证明他们有权访问目标帐户(通常通过键入密码)。
  • sudo需要预授权:源用户、目标用户和命令的组合必须在其配置文件中声明。

su首先出现:它早在Unix V31973 年。当时它只涵盖成为 root 的情况(因此得名:s上-爵士)。sudo稍后来了1980年,添加定义复杂授权策略的可能性。因为su它更旧、更简单,所以它是一个标准工具,可在所有类 UNIX 系统上使用,而sudo虽然是一个非常常见的附加组件,但在默认安装和嵌入式系统中通常会缺失。

Debian 默认是su因为它是基本系统的一部分 — 在 Linux 下,有一个su程序GNU Coreutils(以及lscp等)并在实用程序Linux(以及mountfdisktaskset等)。许多以 root 身份运行的系统脚本都用于su以系统用户身份启动任务。该sudo软件包是可选的,因为您可以在没有它的情况下运行系统,它是最终用户工具,很少被其他软件使用。

关于安全性,请参见获得root权限最安全的方法是:sudo、su还是login?

答案2

Sudo 是一个附加程序,系统上可能安装也可能不安装。它sudo在 Debian 上以软件包形式提供。如果没有有关您所指的具体情况/代码的更多信息,最可能的答案是不能假定已安装 sudo,su为什么POSIX 标准要求存在作为 Debian 基本系统的一部分安装。因此,任何力求最大可移植性的脚本或教程都将使用su.

相关内容