Учебники (How-To & F.A.Q)

Идентификация по отпечатку пальца

Здравствуйте, юзеры!

Уже пол-года сижу на манжаре, горя не знаю, но периодически возникает желание что-то эдакое запилить (создать рамдиск, подключить видюху и накатить стим, поиграться с настройками шрифтов чтобы в tty кириллица нормально отображалась, разобраться с ошибками в dmesg и т.д.).

И вот недавно мой взгляд упал на сканер отпечатка пальцев, которым я не пользовался с момента сноса винды. Сразу подумал что есть какой-то софт для работы с ним, и очень захотелось добавить возможность входа с помощью этого сканера.

Собственно что для этого нужно:
Библиотека fprint (sudo pacman -S fprint)

Ну и проверка, видит ли ваша система датчик:
lsusb

$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 04f2:b3a6 Chicony Electronics Co., Ltd 
Bus 003 Device 004: ID 8087:07da Intel Corp. 
Bus 003 Device 003: ID 03f0:a407 HP, Inc Wireless Optical Comfort Mouse
Bus 003 Device 002: ID 1d57:fa60 Xenta 
Bus 003 Device 006: ID 138a:0050 Validity Sensors, Inc. Swipe Fingerprint Sensor
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

У меня он в списке предпоследний


Когда вы скачаете пакеты нужно будет обкатать пальчики с помощью команды fprintd-enroll. Так же с помощью опции -f можно указать другой палец (по дефолту правый указательный)
Пример

$ fprintd-enroll -f left-index-finger                                                                                         
Using device /net/reactivated/Fprint/Device/0
Enrolling left-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed


Проверить корректность того что получилось можно с помощью команды fprintd-verfiry.

А теперь самое интересное)))

Нужно научить наш оконный менеджер смотреть на пальчики. У меня графика KDE и оконный менеджер sddm, поэтому я правлю файл
/etc/pam.d/sddm
Для гнома он по идее будет называться /etc/pam.d/gdm, но не проверял и могу ошибаться.

Файл до моего вмешательства:

#%PAM-1.0

auth		include		system-login
auth		optional	pam_kwallet5.so
account		include		system-login
password	include		system-login
session		include		system-login
session		optional	pam_kwallet5.so auto_start

И после

#%PAM-1.0

auth        sufficient    pam_unix.so nullok try_first_pass
auth        sufficient    pam_fprintd.so
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        include       system-login

account     required	  pam_unix.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account	    include	  system-login

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    include	  system-login

session     optional	  pam_keyinit.so revoke
session     required	  pam_limits.so
session     required	  pam_unix.so
session	    include	  system-login


Теперь при входе если пользователь неправильно ввёл пароль, ему будет предложено проверить отпечаток пальца. Что делают остальные добавленные строчки я честно не знаю, ибо конфиг я скопировал и чуть-чуть поправил под себя.

Вот ссылка на ресурс, где я брал инфу. Были и другие сайты, на которых советовали использовать fingerprint-gui, но у меня оно тупо не заработало. Всем добра!