为什么 sudo 默认要求输入运行它的用户的密码?

为什么 sudo 默认要求输入运行它的用户的密码?

我想知道为什么sudo当用户已经登录时实际上需要密码?

用户成功运行sudo意味着用户通过了身份验证,并且有权限这样做。

那么为什么 sudo 需要再次要求身份验证?

注意:我实际上并不是想禁用密码;只是出于好奇而问一下。

答案1

sudo默认情况下会要求您输入密码。不建议这样做,但如果您愿意,您可以绕过所有或部分命令的用户/组的密码。

这就是为什么sudo默认要求输入密码:

Linux 是一个多用户系统,最简单的方法是查看用户,而不是您自己的用户。主要的系统关键组件受到保护,只能由 root 访问。这就是为什么人们建议您在执行日常任务时创建一个除 root 之外的替代用户。想象一下以两个用户(root 和您)身份运行以下命令:

  1. apt-get purge ubuntu-desktop #DO NOT RUN THIS

如果您以 root 身份浏览,则您刚刚删除了ubuntu-desktop;如果您以普通用户身份登录,则会出现错误。

现在,想象一下您运行了多少不同的程序,以及它们如何连接到互联网。您运行的每个客户端/可连接到互联网的程序都是攻击媒介或人们进入您机器的途径。

假设您最喜欢的浏览器有一个新的漏洞firefox,允许攻击者获取 shell。您是希望用户拥有您的 shell,还是您的 ROOT shell?

这就是为什么sudo要求您输入密码。

答案2

您登录的用户不具备执行所有命令所需的所有能力,这是为了保护系统免受意外或故意损坏。通常,root您的用户名将具有不同的密码,并且只有系统管理员才知道 root 密码。在 1 个用户的系统上情况略有不同,您的用户名和 root 的密码往往相同。因此,虽然您可能已经获得授权,但这并不是全部情况...

答案3

您的帐户是 wheel/sudo 组的成员,允许您执行超级用户命令,但它不是像 root 这样的“管理”帐户。

可以使用 root 帐户登录,无需 sudo。但是,不建议这样做,因为它会使系统面临严重威胁。

相关内容