我想知道为什么sudo
当用户已经登录时实际上需要密码?
用户成功运行sudo
意味着用户通过了身份验证,并且有权限这样做。
那么为什么 sudo 需要再次要求身份验证?
注意:我实际上并不是想禁用密码;只是出于好奇而问一下。
答案1
sudo
默认情况下会要求您输入密码。不建议这样做,但如果您愿意,您可以绕过所有或部分命令的用户/组的密码。
这就是为什么sudo
默认要求输入密码:
Linux 是一个多用户系统,最简单的方法是查看根用户,而不是您自己的用户。主要的系统关键组件受到保护,只能由 root 访问。这就是为什么人们建议您在执行日常任务时创建一个除 root 之外的替代用户。想象一下以两个用户(root 和您)身份运行以下命令:
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。但是,不建议这样做,因为它会使系统面临严重威胁。