Use TouchID on MacBook Pro for Terminal sudo prompts
In order to use TouchID on MacBook Pro for Terminal sudo prompts, we need to enable Apple's Touch ID PAM module pam_tid.so (https://opensource.apple.com/source/pam_modules/pam_modules-173.1.1/modules/pam_tid/pam_tid.c.auto.html).
### Just edit `/etc/pam.d/sudo` and add
```bash
auth sufficient pam_tid.so
```
Heads up, when you do a system update this change will be most probably overwritten. In order to make it persistent, you need to create a launchd daemon.
### Create a new file called `pam-tid.sh` in a shared path
```bash
vim /Users/Shared/pam-tid.sh
```
```bash
#!/bin/bash
if ! grep 'pam_tid.so' /etc/pam.d/sudo --silent; then
sed -i -e '1s;^;auth sufficient pam_tid.so\n;' /etc/pam.d/sudo
fi
```
### Create a new `com.graffino.pam.plist` file:
```bash
vim /Users/Shared/com.graffino.pam.plist`
```
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.graffino.pam</string>
<key>KeepAlive</key>
<false/>
<key>LaunchOnlyOnce</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/pam-tid.sh</string>
</array>
</dict>
</plist>
```
### Start the daemon
```sudo launchctl load -w /Users/Shared/com.graffino.pam.plist
Zeno Popovici
16 Jan 2023
« Back to post