У меня есть ThinkPad T470s, и, как и у всех пользователей ThinkPad, у меня нет встроенного считывателя отпечатков пальцев, работающего из коробки в дистрибутивах на основе Ubuntu 20.04 (я использую Linux Mint 20 MATE, но для тестирования доступен стандартный Ubuntu 20.04) .
lsusb показывает
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 17ef:1010 Lenovo Lenovo ThinkPad Dock
Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. USB3.0-CRW
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 138a:0097 Validity Sensors, Inc.
Bus 001 Device 004: ID 04f2:b5ab Chicony Electronics Co., Ltd Integrated Camera
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 018: ID 1199:9079 Sierra Wireless, Inc. Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
Bus 001 Device 017: ID 062a:4101 MosArt Semiconductor Corp. Wireless Keyboard/Mouse
Bus 001 Device 016: ID 17ef:100f Lenovo Lenovo ThinkPad Dock
Bus 001 Device 015: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 013: ID 17ef:1010 Lenovo Lenovo ThinkPad Dock
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Устройство обнаружено, но у меня нет возможности аутентификации на основе отпечатков пальцев ни в диспетчере пользователей Ubuntu. ни MATE по умолчанию.
Что мне делать?
Итак, погуглив и поиграв с разными вариантами, я нашел решение, которое мне подходит.
Во-первых, я использую двойную загрузку с Windows, и отпечатки пальцев регистрируются там. Это очень помогает, потому что я еще не смог успешно зарегистрировать свои отпечатки пальцев, используя только Linux.
Я просто следовал инструкциям на https://github.com/uunicorn/python-validity/tree/master
В системе Ubuntu:
sudo apt remove fprintd
sudo add-apt-repository ppa:uunicorn/open-fprintd
sudo apt-get update
sudo apt install open-fprintd fprintd-clients python3-validity
Перед выполнением последнего шага, предложенного в README, fprintd-enroll
Пришлось перезагрузиться, так как служба почему-то отказалась запускаться. Однако, если у вас двойная загрузка Windows, я предлагаю просто перезагрузиться в Windows.
В Windows запустите в командной строке:
wmic useraccount get name,sid
Сохраните выходные данные в месте, к которому вы можете получить доступ из Linux, и загрузитесь обратно в Linux.
Отредактируйте /etc/python-validity/dbus-service.yaml
, заменив примеры примечаний своим именем пользователя Linux и идентификатором Windows от пользователя, для которого вы настроили аутентификацию по отпечатку пальца. Теперь мой файл выглядит так:
# Mapping for users
# Add mappings from a user to a SID to use the same fingerprints as enrolled by
# Windows. By default, mappings will be generated from the numerical UID if not
# found here. This is fine if you are not dual booting and want to share
# mappings with Windows.
user_to_sid:
# Example:
"aivanov": "S-1-5-21-1821111111-1208666666-1382777777-1001"
Затем запустите pam-auth-update
от имени пользователя root. Убедитесь, что профиль «Аутентификация по отпечатку пальца» отмечен флажком, и нажмите OK, чтобы сохранить конфигурацию.
Теперь перезагрузка и аутентификация по отпечатку пальца неожиданно работают. Вы видите, что сканер отпечатков пальцев загорается, и, если он отсканирован, вы либо сразу входите в систему, либо должны нажать Enter, чтобы войти в систему (зависит от оболочки входа в систему).
fprintd-list
также показывает все отпечатки пальцев Windows:
$ fprintd-list aivanov
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user aivanov on DBus driver (press):
- #0: WINBIO_FINGER_UNSPECIFIED_POS_01
- #1: WINBIO_FINGER_UNSPECIFIED_POS_02
- #2: WINBIO_FINGER_UNSPECIFIED_POS_03
Так что все работает.
Теперь мне не удалось успешно зарегистрировать отпечатки пальцев с помощью fprintd-enroll
.Всякий раз, когда я это делал, fprintd-verify
не совпадал ни с одним из зарегистрированных отпечатков пальцев. Поскольку многие источники утверждают, что 138a:0097
различные датчики отпечатков пальцев Validity, используемые для ThinkPad, ведут себя странно при регистрации под чем-то, кроме Windows, на данный момент я бы просто использовал VirtualBox и Windows 10 для регистрации. мои отпечатки пальцев на ближайшие 10 лет и забудьте об этом. Если у кого-то есть работающее решение, не требующее Windows, поделитесь, пожалуйста.