
Mac OSでTouch IDを使ってsudoを認証する方法
Touch Bar を搭載した MacBook Pro をお持ちで、頻繁にコマンド ラインを使用する場合は、ターミナルでデジタル ネアンデルタール人のようにパスワードを入力するのではなく、Touch ID を使用して sudo および su を認証できるトリックが便利かもしれません。
注目すべき問題(またはトレードオフ)の一つは、SSHを使用してMacに接続すると、Touch IDが送信されないためsudoが使用できなくなることです。ただし、High Sierraのベータ版ではこの点が改善される可能性があるという報告もあります。
とにかく、Touch BarとTouch IDを搭載したMacをお使いの上級Macユーザーの方は、sudo認証でTouch IDサポートを有効にする方法を以下にご紹介します。ただし、初心者ユーザーや、コマンドラインでsudo認証にそれほど時間をかけない方にはあまり役に立ちません。また、システムファイルの編集が必要となるため、この手順を始める前にMacをバックアップしておくことをお勧めします。
MacでTouch IDを使ってsudoを実行する方法
始める前にMacをバックアップしてください。ターミナルから(もちろん)/etc/pam.d/sudo を編集し、新しい行を追加します。ここではnanoを使用しますが、vimやemacs、あるいはGUIアプリでも構いません。
- まだ開いていない場合はターミナル アプリを開き、次のコマンドを入力します。
- Return キーを押して、先頭に次の行を追加します。
- Control+O で編集内容を保存し、Control+X で nano を終了します。
sudo nano /etc/pam.d/sudo
auth sufficient pam_tid.so
これで準備完了です。Touch IDはコマンドラインでパスワードを入力する代わりにsudo認証を行うようになりました。もちろん、パスワードも引き続き使用できます。なお、一部のユーザーから、これを動作させるには再起動またはシェルの更新が必要だという報告があります。
これで、次回 sudo または su を実行して root ユーザーを使用するか、root としてコマンドを実行するときに、Touch ID に指を置いて認証できるようになります。
これはTouch ID搭載Macユーザーにとって間違いなく便利な機能であり、コマンドラインでの変更ではなく、専用の設定オプションを用意するべきでしょう。もう一つの便利な方法は、パスワード入力時のsudoタイムアウトを変更することです。この場合、Touch IDで再度認証するまでのタイムアウトを延長することになります。
このヒントはTwitterの@cabelさんから提供されたもので、こちらではかなり人気を集めており、私も初めて耳にしました。ちなみに、Touch IDでsudoを使う方法については、HamzaSoodさんがGithubやその他のウェブ上で様々な方法で既に議論していました。Touch ID搭載Macをお持ちで、ターミナルを頻繁に使用する方にとって、これは魅力的な機能かもしれませんので、ぜひ試してみてください!
また、この変更を元に戻したい場合は、/etc/pam.d/sudo から「auth sufficient pam_tid.so」の行を再度削除するだけです。