
MacのTerminalでsudo実行時にタッチIDを使用する方法
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、CX事業本部の夏目です。
MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。
使う方法
/etc/pam.d/sudoにauth       sufficient     pam_tid.soを追加します。
書き込みには管理者権限が必要になるので次のようにして編集します。
# 自分の環境では最初管理者でも書き込みができないようになってたので、できるようにする $ sudo chmod +w /etc/pam.d/sudo $ sudo vi /etc/pam.d/sudo
もともとはこんな感じになっていると思うので、
# sudo: auth account password session 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
こんな感じにします。
# sudo: auth account password session auth sufficient pam_tid.so 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
2行目に追加しています。
あとはTerminalを一度終了させて再度起動すれば、sudo実行時にタッチIDが使えるようになります。

iTermを使っている人は
iTermを使ってる人は次の設定をする必要があります。
iTermのPreferencesのAdvancedタブでsudoと入れて検索すると、
Allow session to survice logging out and back in.という設定項目が出てきます。
コレをNoにします。

あとはiTermを一度終了させてから、再度起動するとsudo実行時にタッチIDを使用することができます。
tmuxを使っている人は
tmuxなどのターミナルマルチプレクサを使用している場合はこれだけでは動かせません。
これに対処するために、pam_reattachというPAMモジュールを作った人がいます。
次の手順でインストールします。
# インストール(ビルド)にはcmakeが必要なのでHomeBrewでインストールします $ brew install cmake $ git https://github.com/fabianishere/pam_reattach $ cd pam_reattach $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local $ make install
これで /usr/local/lib/pam/pam_reattach.soにインストールされます。
後は /etc/pam.d/sudoにauth       optional       pam_reattach.soを追記します。
だいたいこんな感じです。
# sudo: auth account password session auth optional pam_reattach.so auth sufficient pam_tid.so 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
あとはシェルにログインしなおせば、sudo実行時にタッチIDを使用することができます。
/etc/pam.d/sudoのアップデートをスクリプト化した人がいました
curl -sL https://gist.github.com/kawaz/d95fb3b547351e01f0f3f99783180b9f/raw/install-pam_tid-and-pam_reattach.sh | bash
これを実行すると、pam_reattach.soのインストールと/etc/pam.d/sudoの更新までしてくれます。
まとめ
Macの便利なタッチIDをsudo実行時にも使用できるようにしてみました。
sudoでパスワード打つの面倒な人は仕込んでみてください。







