MacBook Proの「Touch ID」を利用してsudoの認証を行うPAMをインストールしてみた!
このブログは以下の場所に移転しました。
TouchBarを搭載した新型MacBook Proですが、TouchIDがあるとはいえ、パスワードを入力するケースはまだまだ多いです。今回は、ターミナルでsudoコマンドを使用する際にパスワード入力を不要とするPAMを導入してみましたのでレポートします。
sudoがTouch IDで実行できるように
以下の動画のように、sudoを使って他のユーザー権限でコマンドを実行する際に求められるパスワードがTouch IDの指紋認証で済むようになり、作業が捗ります。
インストール方法
Hamza SoodさんがGitHubで公開しているpam_touchidを使用します。
ビルドされたアプリが更改されているわけではありませんので、ソースを入手してXcodeを用いて自分でビルドする必要があります。
GitHubからソースコードをダウンロード
任意のディレクトリにソースコードをダウンロードし、Xcodeでビルドします。
作成されたpam_touchid.so.2をコピー
ビルドして作成されたpam_touchid.so.2を/usr/local/lib/pam/ にコピーします。
私の場合は、/usr/local/libの下にpamがなかったので自分で作成しました。
pam_touchid.so.2にアクセス権等を設定
/usr/local/bin/pam/ にコピーしたpam_touchid.so.2 にアクセス権等を設定します。
まず、所有者およびEveryoneに対し読み取り権限を設定します。
chmod 444 /usr/local/lib/pam/pam_touchid.so.2
次に、所有者をrootに設定します。
sudo chown root /usr/local/lib/pam/pam_touchid.so.2
最後に、スーパーユーザー権限を得ることが可能なwheelグループに設定します。
sudo chgrp wheel /usr/local/lib/pam/pam_touchid.so.2
pam配下のsudoファイルを編集
/etc/pam.d/sudo を編集します。
sudo vim /etc/pam.d/sudo
sudo ファイルの先頭に以下を追記します。
auth sufficient pam_touchid.so reason="他のユーザー権限でコマンドを実行"
ターミナルを再起動
ターミナルを終了して再び起動し、sudoコマンドを実行するとパスワードの代わりにTouch IDで認証されれるようになります。