【2026年最新】nix-darwinでTouch IDでsudo突破する方法

重い腰を上げてdotfilesのNix化に取り組んでいる今日このごろです。Macの設定をnix-darwinで管理できると知ってウハウハでした。
ただ設定の反映で毎回sudoのたびにパスワードを入力するのが面倒になりました。というわけで、代わりにTouch IDを使えるように設定しました。

## enableSudoTouchIdAuthは古い

最初はsecurity.pam.enableSudoTouchIdAuthで設定しようとしましたが、次のようなエラーになりました。

Failed assertions:
- The option definition `security.pam.enableSudoTouchIdAuth' in `/nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-source/nix/darwin/system.nix' no longer has any effect; please remove it.
This option has been renamed to `security.pam.services.sudo_local.touchIdAuth` for consistency with NixOS.

ここに書いてあるようにrenameされたようです。

## 設定

エラーで言われたとおりにsecurity.pam.services.sudo_localを設定します。

security.pam.services.sudo_local = {
touchIdAuth = true;
reattach = true; # tmux内で必要
};

tmuxを使う場合、touchIdAuthだけでなくreattachも必要です。

参考:pam.nix

## 反映

最後に反映しましょう。

Terminal window
sudo darwin-rebuild switch

以上、sudoでパスワードの代わりにTouch IDを使うための、nix-darwinの設定方法でした。

switchの段階でこうやってエラーを出してくれるのが本当に助かる。