動作確認環境
- macOS Sonoma 14.0
- M2 MacBook Air
sudoでTouch IDを有効化する手順
macOS Sonomaにおいて、sudo実行時にTouch IDが使えるようにするには、 /etc/pam.d/sudo_local
ファイルを作成します。 sudo_local.template
が用意されているので、それを元に作成すると簡単です。
sudo cp /etc/pam.d/sudo_local.template /etc/pam.d/sudo_local
# お好みのエディタで /etc/pam.d/sudo_local を編集
sudo vim /etc/pam.d/sudo_local
- #auth sufficient pam_tid.so
+ auth sufficient pam_tid.so
またはsedとteeを使うとワンライナーでいけます。
sed -e 's/^#auth/auth/' /etc/pam.d/sudo_local.template | sudo tee /etc/pam.d/sudo_local
これだけ!
動作確認
別のターミナルセッションを起動し、sudoコマンドを試してみます。
sudo ls
するとTouch IDが求められます。
Touch IDで認証するとコマンドが実行されることが確認できれば設定完了です!
解説
Sonoma以前の、macOSでもsudo実行時のTouch IDを有効化することはできました。
参考
しかし、以前の方法では /etc/pam.d/sudo
ファイルを編集しており、一度Touch ID有効化を行なってもmacOSをシステムアップデートすると /etc/pam.d/sudo
が元に戻ってしまい、Touch ID有効化設定が消えてしまっていました。
そのため、システムアップデート後に毎回再設定を行う必要がありました。
それがSonomaで /etc/pam.d/sudo
に /etc/pam.d/sudo_local
を読み込む設定が追加されました。
$ cat /etc/pam.d/sudo
# sudo: auth account password session
auth include sudo_local
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
/etc/pam.d/sudo_local
はシステムアップデート時に更新されない(と謳っている)ため、このファイルにTouch ID有効化設定を記述することでsudo実行時のTouch ID設定を有効化のままにしておくことができるようになったということです。とてもありがたい!
ちなみに、macOS Sonoma以前のmacOSでsudo実行時にTouch IDを有効化するにはこれまで通り /etc/pam.d/sudo
ファイルを編集する必要がありますのでご注意ください。
参考