发布于 2026-01-06 1 阅读
0

如何在 Mac 上允许 Touch ID 对 sudo 命令进行身份验证

如何在 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
Enter fullscreen mode Exit fullscreen mode
  • 粘贴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
Enter fullscreen mode Exit fullscreen mode
  • 保存文件(由于此文件为只读文件,您可能需要强制保存,例如,保存时vim需要使用)。wq!

  • 现在尝试在终端中使用 sudo 命令,系统应该会提示您使用 Touch ID 进行身份验证,如下所示。

Screenshot 2019-11-02 at 1.13.51 PM.png

  • 如果您点击“取消”,则可以在终端提示符处输入密码;如果您点击“使用密码”,则可以在对话框中输入密码。

  • 如果您通过 SSH 连接到您的机器,它将回退到仅使用您的密码,因为您无法通过 SSH 发送您的 Touch ID 指纹。

  • 如果您使用的是iTerm2(版本 3.2.8 及更高版本),您可能会遇到这样的情况:即使按照上述步骤修改了 pam_tid.so 文件,Touch ID 也无法在终端中使用 sudo 命令。而之前的版本则可以正常工作。这是由于 iTerm2 的一项高级功能默认启用所致,您需要在此处将其关闭:iTerm2 -> 首选项 > 高级 > (转到“会话”标题) > 允许会话在注销并重新登录后仍然有效。

Screenshot 2019-11-02 at 1.17.56 PM.png

参考链接:https ://apple.stackexchange.com/questions/259093/can-touch-id-for-the-mac-touch-bar-authenticate-sudo-users-and-admin-privileges

文章来源:https://dev.to/thamaraiselvam/how-to-allow-touch-id-to-authenticate-for-sudo-commands-on-mac-2a68