我无意中犯了一个错误,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 文件听起来是正确的。)。