Вопрос или проблема
Я пытался установить PIN-код для разблокировки экрана на Ubuntu Studio 24.04 LTS. Этот дистрибутив использует KDE Plasma 5. Мне удалось следовать этим инструкциям, чтобы использовать пин на экране входа SDDM. Но это не влияет на экран блокировки, который, как я понял из того, что говорят в интернете, управляется kscreenlocker.
Я нашел это руководство, на которое ссылается этот вопрос, и попытался следовать ему с дополнительными инструкциями по созданию файла kde, скопировав файл входа и переименовав его.
Проблема в том, что, во-первых, консольная команда echo <username>:openssl passwd -1 <PIN> |sudo tee -a /etc/kde_unlock_pin
не создает зашифрованную строку, как другая команда sudo sh -c 'echo "username:$(mkpasswd -5)" > /etc/mypinfile'
. И независимо от того, что я делаю с скопированным/переименованным файлом входа, т.е. /etc/pam.d/kde, будь то использование файла kde_unlock_pin или mypinfile, независимо от того, куда я размещаю строку auth sufficient, и даже если я помещаю файл kde в /usr/lib/pam.d/ вместо /etc/pam.d/, это, кажется, не вызывает никаких изменений в поведении screenlocker.
Я надеялся спросить Алекса напрямую в его посте о том, как ему удалось это сделать. Но я только что создал этот аккаунт. И, видимо, у меня нет репутации, чтобы это сделать.
Пожалуйста, помогите. Заранее спасибо.
Ответ или решение
Настройка разблокировки экрана с помощью PIN-кода в дистрибутиве Ubuntu Studio 24.04 LTS, использующем среду KDE Plasma 5, может вызвать некоторые трудности, особенно если вы уже следовали определённым инструкциям для настройки входа с помощью PIN на экране входа SDDM, но этого оказалось недостаточно для разблокировки экрана. Основная сложность заключается в том, что, как вы правильно заметили, экран блокировки управляется компонентом KDE под названием kscreenlocker, на который настройки SDDM не оказывают никакого влияния.
Теория
Для начала давайте разберём, как в целом работает разблокировка экрана в KDE Plasma и какую роль играют в этом PAM (Pluggable Authentication Modules). Система PAM используется для управления процессом аутентификации в Linux. Суть PAM заключается в гибком подходе к применению разнообразных методов аутентификации путем использования модулей, которые могут быть добавлены или удалены в зависимости от требований.
Настройка разблокировки экрана с помощью PIN-кода через PAM включает три основных этапа:
- Создание файла с хешем PIN-кода.
- Настройка PAM для использования этого файла.
- Настройка kscreenlocker для взаимодействия с PAM.
Пример
Ваша проблема может быть связана с неточностями на любом из этих трех этапов. Поэтому давайте пошагово разберём, что нужно сделать:
Шаг 1: Создание файла с хешем PIN-кода
Используем команду для создания хеша:
sudo sh -c 'echo "<username>:$(openssl passwd -6 <PIN>)" > /etc/kde_unlock_pin'
Обратите внимание:
- Здесь используется команда
openssl passwd -6
, которая создаёт хеш SHA-512. Ранее в вашем вопросе упоминалось использование-1
, что создаёт хеш с использованием MD5, который может быть неподдерживаем или устаревшим в вашей конфигурации. - Замените
<username>
на ваше имя пользователя и<PIN>
на желаемый цифровой код.
Шаг 2: Настройка PAM для использования файла с PIN-кодом
Откройте файл конфигурации PAM для kscreenlocker:
sudo nano /etc/pam.d/kscreenlocker
Вам нужно добавить строку, которая будет использовать созданный файл с PIN-кодом. Примерно так:
auth sufficient pam_exec.so expose_authtok /etc/kde_unlock_pin
Убедитесь, что этот пункт идёт перед другими методами аутентификации, чтобы PIN-код проверялся первым.
Шаг 3: Перепроверка конфигурации и логов
Если после этих шагов система всё равно не реагирует на ввод PIN-кода, проверьте следующие моменты:
-
Перепроверьте права доступа на файл с PIN-кодом. Он должен быть доступен только суперпользователю для предотвращения несанкционированного доступа:
sudo chmod 600 /etc/kde_unlock_pin
-
Убедитесь, что изменений, внесённых в PAM, достаточно для вашей версии Ubuntu и Plasma. Версия библиотеки PAM или его конкретных модулей может отличаться, что может потребовать иных конфигураций.
-
Проверьте системные журналы на наличие ошибок при попытке разблокировки экрана:
sudo journalctl -xe
Эти журналы могут содержать ключевые подсказки, указывающие на проблемы в настройках аутентификации.
Применение
Вы установили общие принципы и выполнили шаги, однако, диапазон возможных конфигураций системы и версий пакетов может означать, что потребуется корректировка. Если проблемы продолжают возникать, полезным будет обратиться к обновлённой документации KDE и Ubuntu, либо на профильные форумы, где другие пользователи могут предложить решения, основанные на схожем опыте.
Такой подход позволяет гибко настраивать безопасную аутентификацию с использованием PIN-кода и значительно упрощает разблокировку экрана в ежедневном использовании, оставаясь при этом безопасным. Обратите внимание на изменения в обновлениях системы, так как разработчики могут внести улучшения или изменения в порядок работы аутентификационных систем и экранов блокировки.