🍎
【macOS Sonoma】sudoコマンド実行時に、Touch IDを使用した認証をする
環境
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