Сканер отпечатков пальцев (fprintd)

Материал из ALT Linux Wiki

Введение

В Linux использование сканера отпечатков пальцев используется fprintd и библиотека libfprint.

Linux поддерживает сканеры с интерфейсом как USB, так и SPI. Убедитесь, что ваш сканер поддерживается libfprint`ом перед тем, как приступить к конфигурации. Полный список поддерживаемых устройств можете посмотреть здесь.

Конфигурация

Система fprintd не предоставляет графического интерфейса, так что все дальнейшие действия будут проводится из консоли.

Примечание: Испытания проводились на Lenovo ThinkPad E15, сканер 04f3:0c4b

Установка

Для установки необходимо ввести следующие команды:

apt-get update
apt-get install libfprint2 fprintd pam_fprintd

Добавления отпечатков пальцев

Добавление отпечатков пальцев происходит при помощи fprintd-enroll

~ » fprintd-enroll --help
Использование:
    fprintd-enroll [ПАРАМЕТР…] [username] Enroll a fingerprint

Параметры приложения:
    -f, --finger      Finger selected to verify (default is automatic)

При запуске без параметров автоматически происходит создание отпечатков для текущего пользователя, для правого указательного пальца

Примечание: Этот этап - самый времязатратный. Лучше всего у меня отработало с левым указательным пальцем, но наверное зависит от сканера. Также, если долго и неуспешно проводить сканирование может возникнуть ошибка "unknown error". Для её решения нужно перезагрузить компьютер

Настройка авторизации

Для настройки требуются внести строку

auth        sufficient    pam_fprintd.so

на второе место в начало файла /etc/pam.d/lightdm

В данном случае сначала будет проводится запрос пароля, в случае если он не верный, включается проверка по отпечатку пальца. Подробнее про систему pam, можно ознакомится в соответствующей статье на АрчВики.

Примечание: Такой же способ может работать с любыми файлами в /etc/pam.d/. Например, авторизацию по отпечатку пальцев можно настроить для su, sudo, polkit и kde

Ограничение прав пользователей

По-умолчанию пользователь имеет права на неограниченное создание новых записей об отпечатках. Ограничить это можно при помощи средств polkit. Для этого нужно создать файл /etc/polkit-1/rules.d/50-net.reactivated.fprint.device.enroll.rules и внутри прописать следующее:

polkit.addRule(function (action, subject) {
  if (action.id == "net.reactivated.fprint.device.enroll") {
    return subject.user == "root" ? polkit.Result.YES : polkit.Result.NO
  }
})

Тогда создавать новые записи сможет только root пользователь.

Ссылки