为什么在此之后我仍然需要以 sudo 身份运行关机?

为什么在此之后我仍然需要以 sudo 身份运行关机?

我正在运行 Linux Mint 17.3。

默认情况下,运行 shutdown 或其他命令(例如重新启动、关闭电源)需要 root 权限。

所以我添加了以下行

lesaff_b ALL=(ALL) NOPASSWD:/sbin/poweroff、/sbin/reboot、/sbin/shutdown

到 /etc/sudoers.我知道它仍然要求我以 sudo 身份运行这些命令,但它不会要求输入密码,因此我为每个命令创建了一个别名。

第一次工作正常,但后来停止工作,我现在需要以 sudo 身份运行这些命令并输入密码。我知道还有其他方法可以在不使用 sudo 的情况下运行这些命令,但为什么它应该起作用却不起作用,最重要的是,为什么它一次起作用?

答案1

鉴于我们在评论中了解到的信息,似乎:

  1. 您运行了一些命令sudo(也许编辑 sudoers 以在 Q 中添加引用的 NOPASSWD 行)
  2. timestamp_timeoutsudo 缓存了这些凭据,允许您在(默认情况下 5 分钟,我相信)内运行重新启动或关闭
  3. 但在重新启动后(超过timestamp_timeout),系统再次提示您输入这些命令的密码,因为存在预先存在的 ALL:ALL sudo 规则没有NOPASSWD 标志——您没有添加但被困住了。因为sudo 使用最后一个匹配规则,它意外地提示了你。

这里的解决方案是将您的规则移至预先存在的 ALL:ALL 规则下方(或者,如果您愿意,可以将 NOPASSWD 标志添加到现有的 ALL:ALL 规则中)。

相关内容