Больше не нужно вводить пароль руками?! Touch ID для sudo на MacOS
Автор:
Eugeny Nosenko
Дата публикации:
2025-08-29 09:15:40 24

В macOS Sonoma был введен новый метод включения Touch ID при выполнении команд sudo, что делает эту функцию более устойчивой к обновлениям системы. Ранее для этого требовалось редактировать файл /etc/pam.d/sudo, но эти изменения часто откатывались после обновления, что требовало повторной настройки. В Sonoma настройки можно добавить в отдельный файл /etc/pam.d/sudo_local, который не перезаписывается при обновлении системы, позволяя Touch ID оставаться включенным для команд sudo постоянно.
Включение Touch ID для sudo:
1. Создание и редактирование конфигурационного файла
Создайте новый конфигурационный файл на основе шаблона, предоставленного в macOS Sonoma.
sudo cp /etc/pam.d/sudo_local.template /etc/pam.d/sudo_local
Откройте вновь созданный файл с помощью вашего любимого текстового редактора:
sudo vim /etc/pam.d/sudo_local
В файле найдите следующую строку и раскомментируйте её, удалив символ #:
- #auth sufficient pam_tid.so + auth sufficient pam_tid.so
Альтернативный метод с использованием sed и tee:
sed -e 's/^#auth/auth/' /etc/pam.d/sudo_local.template | sudo tee /etc/pam.d/sudo_local
2. Подтверждение операции
Откройте новую сессию терминала и выполните команду sudo для проверки настройки:
sudo ls
Вас должны попросить аутентифицироваться с помощью Touch ID. Если команда выполняется после аутентификации через Touch ID, настройка завершена.
-----------------------
Ранее включение Touch ID для sudo требовало редактирования файла /etc/pam.d/sudo, но эти изменения не сохранялись после обновлений macOS. Используя новый файл конфигурации /etc/pam.d/sudo_local в macOS Sonoma, мы можем гарантировать, что настройки Touch ID для sudo останутся неизменными даже после обновления системы.
Файл /etc/pam.d/sudo теперь включает следующее:
# sudo: auth account password session auth include sudo_local 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
Эта конфигурация гарантирует, что настройки в /etc/pam.d/sudo_local загружаются и используются, поддерживая функциональность Touch ID для команд sudo.
Примечание: Для версий macOS, предшествующих Sonoma, по-прежнему требуется ручное редактирование файла /etc/pam.d/sudo для включения Touch ID для команд sudo.