金融系ITストラテジストのブログ

金融とはおよそ関係のないおもにデジタルガジェットに関する記事を書きます。

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でビルドします。

git clone https://github.com/hamzasood/pam_touchid.git

 作成された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で認証されれるようになります。