如何在 Mac 上允许 Touch ID 对 sudo 命令进行身份验证
要在 Mac 上启用 Touch ID 来进行 sudo 访问权限的身份验证,而不是使用密码,您需要执行以下步骤。
- 使用以下命令打开 sudo 配置文件
sudo vi /etc/pam.d/sudo
初始文件内容应如下所示
# sudo: auth account password session
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
- 粘贴
auth sufficient pam_tid.so到文档第 2 行(初始注释行下方)
粘贴内容后应该像这样
# sudo: auth account password session
auth sufficient pam_tid.so
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
-
保存文件(由于此文件为只读文件,您可能需要强制保存,例如,保存时
vim需要使用)。wq! -
现在尝试在终端中使用 sudo 命令,系统应该会提示您使用 Touch ID 进行身份验证,如下所示。
-
如果您点击“取消”,则可以在终端提示符处输入密码;如果您点击“使用密码”,则可以在对话框中输入密码。
-
如果您通过 SSH 连接到您的机器,它将回退到仅使用您的密码,因为您无法通过 SSH 发送您的 Touch ID 指纹。
-
如果您使用的是iTerm2(版本 3.2.8 及更高版本),您可能会遇到这样的情况:即使按照上述步骤修改了 pam_tid.so 文件,Touch ID 也无法在终端中使用 sudo 命令。而之前的版本则可以正常工作。这是由于 iTerm2 的一项高级功能默认启用所致,您需要在此处将其关闭:iTerm2 -> 首选项 > 高级 > (转到“会话”标题) > 允许会话在注销并重新登录后仍然有效。

