0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOS で sudo コマンド実行時に、パスワード入力の代わりに Touch ID 認証を使用する

Posted at

macOSでsudoコマンド実行時に、パスワード入力の代わりにTouch ID認証を使用する設定方法

  • この設定は、システムの認証メカニズムを管理するPAM(Pluggable Authentication Modules)の設定ファイルを変更することで実現します。
  • 具体的には、sudoコマンド用のPAM設定ファイルにTouch ID認証モジュールを追加します。

はじめに

  • 目的: sudoコマンド実行時の認証を、パスワード入力からTouch IDによる指紋認証に変更する。
  • 方法: /etc/pam.d/sudoというPAM設定ファイルを編集し、Touch ID認証モジュール (pam_tid.so) を有効にする。
  • 前提条件:
    • Touch IDセンサーが動作すMacを使用している。
      • macOS Sierra以降
      • MacBook Pro 2016以降
    • Touch IDに指紋が登録済みである。
    • 管理者権限を持つユーザーアカウントで操作している。
    • ターミナルとテキストエディタを操作できる。
    • システムファイルの編集に伴うリスクを理解している。

設定手順

  1. PAMについて:

    • PAMは、macOS(および多くのUnix系OS)で、システムやアプリケーションが「ユーザー認証」を行う方法を柔軟に設定するための仕組みです。
    • 設定ファイル(/etc/pam.d/ディレクトリ内にある)を編集することで、認証方法(パスワード、Touch ID、スマートカードなど)の追加や順序変更が可能です。
  2. 必ずバックアップを取ること:

    • システムファイルを編集する前には、必ずバックアップを作成します。万が一編集に失敗した場合に、元の状態に戻せるようにするためです。ターミナルで以下のコマンドを実行します。
      好きなターミナルとテキストエディタで実行
      sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak
      
    • 管理者パスワードを求められたら入力します(入力中は表示されません)。
  3. PAM設定ファイルの編集:

    • テキストエディタ(ここではnanoを使用)で/etc/pam.d/sudoファイルを開きます。管理者権限が必要なためsudoを使用します。
      好きなターミナルとテキストエディタで実行
      sudo vim /etc/pam.d/sudo
      
    • ファイルを開いたら# sudo: auth account password sessionというコメント行の直後に以下の1行を追加します。
      好きなターミナルとテキストエディタで実行
      # sudo: auth account password session
      auth       sufficient     pam_tid.so
      
      • 説明:
        • auth: 認証プロセスに関する設定であることを示します。
        • sufficient: このモジュールによる認証が成功した場合、後続の認証モジュール(この場合はパスワード認証pam_unix.so)はスキップされることを意味します。
        • これにより、Touch IDが利用可能な場合はTouch ID認証が優先され、成功すればパスワード入力は不要になります。
        • Touch IDが利用できない(センサーがない、指紋が登録されていない、蓋が閉じているなど)場合や認証に失敗した場合は、次の認証モジュール(パスワード)に進みます。
        • pam_tid.so: Touch ID認証を行うPAMモジュールです。
    • 編集後のファイルの例 (先頭部分):
      好きなターミナルとテキストエディタで実行
      # sudo: auth account password session
      auth       sufficient     pam_tid.so  # この行を追加
      auth       required       pam_opendirectory.so
      account    required       pam_nologin.so
      account    required       pam_sacl.so /etc/security/access.conf
      account    required       pam_opendirectory.so
      password   required       pam_opendirectory.so
      session    required       pam_launchd.so
      
    • ファイルの保存:
      1. vimエディタで、:wq! とキー入力すれば保存して終了する。
  4. 動作確認:

    • 新しいターミナルウィンドウを開くか、現在のターミナルで sudo ls のようなコマンドを実行する。
    • パスワード入力プロンプトの代わりに、Touch IDの認証ダイアログ(またはTouch Barへの指示)が表示される。
    • Touch IDセンサーに登録済みの指を置くと、認証が完了しコマンドが実行される。
    • 認証ダイアログで「キャンセル」を押したり、認証に失敗したりした場合は、パスワード入力プロンプトが表示される。
  5. 注意点

  • システムのアップデートで巻き戻される:
    • macOSのシステムアップデートにより、/etc/pam.d/sudoファイルが上書きされ、設定が元に戻ることがある。
    • アップデート後にTouch ID認証が機能しなくなった場合は、再度この手順を実行する必要がある。
  • 編集ミスれば sudo コマンドが死ぬ:
    • ファイルの編集を誤ると、sudoコマンドが使えなくなる可能性がある。
    • 事前に、必ずバックアップを取り、慎重に編集すること。
    • 問題が発生した場合は、リカバリーモードでバックアップファイルから元に戻すこと。
  • セキュリティのトレードオフ:
    • Touch IDはパスワードよりも素早く認証できるが、睡眠中などに第三者に指を使われるリスクや、登録された指の持ち主であれば誰でも認証できてしまう点が、複雑なパスワードによる認証と比較してセキュリティレベルが異なる。
    • ゆえに、使用環境やセキュリティ要件によっては、パスワード認証の方が適切な場合がある。
      *また、代替手段として、パスワードマネージャーや他の認証ソリューションを利用する方法もある。
  • 故障や状況による問題:
    • Touch IDセンサーの故障、または外部ディスプレイ接続などでMacBookの蓋を閉じている場合、この設定を行ってもTouch ID認証は利用できず、パスワード入力が必要になる。
  • OSバージョンや製品による差異:
    • 古いmacOSバージョンではpam_tid.soが存在しない、あるいは動作が異なる可能性がある。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?