用了一段时间MacBook Pro with TouchBar,感觉开机或唤醒时读指纹还是很方便的,但安装一些软件或执行命令操作时还是需要输入密码,似乎不那么省事,对设置复杂密码也不够友好。今天学到了一个新技巧,让我们在终端里sudo
执行命令时不再需要手输密码,而是Touch ID验证。
修改/etc/pam.d/sudo
这个文件,建议用sudo nano /etc/pam.d/sudo
(当然,你也可以用vi
,记得最后:wq!
强制保存就行了)。
在第一行增加auth sufficient pam_tid.so
注意这里顺序是重要的,并不是可有可无。一般来说添加以后的效果如下:
auth sufficient pam_tid.so
auth sufficient pam_smartcard.so
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
补充说明:pam_smartcard.so
这一行不是都会有,好像是针对Apple Watch解锁的配置。
现在尝试下sudo
操作吧,应该会看到提示识别指纹而不是输入密码了。

这个方法是直接修改sudo
的权限要求,所以对iTerm2等第三方终端工具也是生效滴。
更新:2019-08-19 如果结合iTerm2 3.2.8以上版本使用,会发现上述方法失效,这是因为iTerm 2的一个特性与此冲突。目前的解决方案有两个(任选其一,我用了第一个):
- 在iTerm 2的设置中
Advanced > Session > Allow sessions to survive logging out and back in
设置为No
,此时特性失效,也就没有冲突啦。 - 有网友贡献了一个补丁,安装后可以解决。
p2yang
2018年12月26日 @ 14:25
哈哈,很赞👍