よせなべ

プログラミングを入れた鍋にガジェットやゲームなど様々な材料を入れて煮込みます。

MacBook の pam.d sudo を復元

方法

Finderで /etc/pam.d/sudoをデフォルトのものに置き換える。

背景

MacBookのSudoコマンドの認証をTouch IDで行えるようにしていた。

/etc/pam.d/sudoの先頭にauth sufficient pam_tid.soを追加するとできるのだが、この方法が使えなくなっていたもよう。

sudo: unable to initialize PAM: Invalid argumentエラーが出るようになっていた。

applech2.com

試行

"sudo: unable to initialize PAM: Invalid argument" だとか "pam.d sudo recover" で検索するとシングルユーザーモードでどうとかこうとかと書いてあるが、そもそも/etc/pam.d/sudoの編集にsudoが必要なのでできず。(やり方が間違っていたのかもしれないが)

発想

色々試していたところCLIではなくGUI操作で管理者権限が必要な時はパスワード認証やらTouch ID認証のダイアログが出ていたことに気づいた。

Finderならいけるのでは?!

いけた

詳細

  1. Finderを開く
  2. /etc/pam.d/に遷移 (/etc/は隠しフォルダなので⌘ + ⇧ + sで表示)
  3. sudoファイルをバックアップしておく
  4. sudoファイルを削除
  5. デフォルトのsudoファイルを貼り付け

デフォルトの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