我如何恢复让 sudo 再次要求输入密码?

我如何恢复让 sudo 再次要求输入密码?

我无意中犯了一个错误,sudo在 Mac 上将命令设置为无密码。我该如何将其恢复为默认设置?

答案1

man sudoers

NOPASSWD 和 PASSWD

默认情况下,sudo 要求用户在运行命令之前进行身份验证。此行为可以通过 NOPASSWD 标记进行修改。

您要么添加了NOPASSWD标签,要么启用了带有标签的条目NOPASSWD

无论如何,/etc/sudoers使用命令visudo(需要 sudo)编辑并删除或注释掉该条目。

例如,通过这些条目,我可以运行任何命令而无需输入密码:

jaume   ALL=(ALL) NOPASSWD: ALL
%localaccounts  ALL=(ALL) NOPASSWD: ALL

%localaccounts表示 localaccounts 组,我是该组的成员:

$ id
uid=501(jaume) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts)

另一方面,如果条目缺少NOPASSWD我必须验证的内容:

jaume   ALL=(ALL) ALL
%staff  ALL=(ALL) ALL

您可以使用如下条目来实现这两种行为:

jaume   ALL=(ALL) ALL,NOPASSWD:/usr/sbin/softwareupdate

这里我需要对除 之外的任何命令进行身份验证softwareupdate

答案2

您可以编辑sudoers使 sudo 再次需要密码。您需要使用须藤维须藤在终端会话中命令并删除以下行:

%sudo ALL=NOPASSWD: 全部

这可能位于文件末尾附近。然后保存(写入)文件并退出。维苏多命令验证新文件并“安装”它。您可能需要重新启动或至少注销并重新打开才能完成此操作。

请注意维苏多命令将带你进入编辑器,因此你需要了解一些使用进行更改。

答案3

在 /etc/sudoers 中查找“NOPASSWD:”并将其删除。如果您愿意,请尝试在终端窗口中运行此命令:
“sed -i 's/ NOPASSWD://g'”如果您愿意,可以先在不使用 -i 开关的情况下进行测试。

答案4

你的帐户是否具有 root/sudoer 权限?

如果是的话,请尝试:

sudo -i

进而

passwd

这会根据您的帐户将您进入超级用户模式,然后重置 root 密码(这可能会做您需要的事情,因为您说 visudo 文件听起来是正确的。)。

相关内容