LoginSignup
31
15

macOS Sonoma 14.xでsudo実行時にTouch IDで認証する機能を有効化する手順

Last updated at Posted at 2023-09-27

動作確認環境

  • 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
/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

ターミナルでsudo lsを実行

するとTouch IDが求められます。

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 ファイルを編集する必要がありますのでご注意ください。

参考

31
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
15