🍎

【macOS Sonoma】sudoコマンド実行時に、Touch IDを使用した認証をする

2023/11/07に公開

環境

macOS: Sonoma 14.1(23B74)
プロセッサ: 2 GHz クアッドコアIntel Core i5

はじめに

macOS Sonomaにアップデートしていろいろファイルを漁っていたら、以前のmacOS Venturaにはなかったsudo_local.templateがあることに気がつき、試しに使ったら無事に動いたので、ここにメモしておきます。

/etc/pam.d/sudo_local.templateをコピー

/etc/pam.d/sudo_local.template
# sudo_local: local config file which survives system update and is included for sudo
# uncomment following line to enable Touch ID for sudo
# auth       sufficient     pam_tid.so

上記のような、事前に作られたファイルがあるのでそれをコピーします。

ターミナル
sudo cp /etc/pam.d/sudo_local.template /etc/pam.d/sudo_local

編集できるように権限を付与

初期状態では編集できる権限がないので、付与してできるようにします。

ターミナル
sudo chmod +w /etc/pam.d/sudo_local

/etc/pam.d/sudo_localのコメントアウトを外す

お好きなエディターで、すでにファイルが用意している行のコメントアウトを外してください。

/etc/pam.d/sudo_local.template
# sudo_local: local config file which survives system update and is included for sudo
# uncomment following line to enable Touch ID for sudo
- # auth       sufficient     pam_tid.so
+ auth       sufficient     pam_tid.so

/etc/pam.d/sudo_localの権限を戻す

必要かどうかわかりませんが、初期状態では編集権限がないので一応外します。

ターミナル
sudo chmod -w /etc/pam.d/sudo_local

最後にターミナルを再起動してみると、無事に動いてると思います!

余談

僕の記憶では、macOS Ventura/etc/pam.d/sudoには、以下の行がなかったので、もしかしたら今後はアップデートしてもファイルが初期化されて、設定し直すという作業がないのかもしれないですね。

/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
岩田組

Discussion