linux下指纹识别设备的使用fprint

背景:

用了两年多的ThinkPad X260从生产战线退下来了,所以格了win10装了debian,版本是代号stretch的9,桌面环境KDE。

笔记本带有滑动式指纹识别设备,芯片是来自Validity Sensors,Inc的VFS5011,这公司是Synaptics旗下的。(有没有指纹识别设备,可以尝试用lsusb查看,关键词Fingerprint Reader)

为贯彻勤俭节约的精神,所以想把这个设备用起来,期望是跟win10一样,使用在登陆界面的鉴权。

方法:

经过百度,基本确定了逻辑是,安装fprint及相关库,然后配置PAM,从而达到使用指纹设备替代输入密码的效果。

*[1]fprint=fingerprint是指纹的意思,缩写后成了fprint(跟C的fprintf好像……),项目地址疑似是https://fprint.freedesktop.org/ 这个项目包含一些设备的驱动,其中包含了我这个VFS5011,具体支持的设备列表在https://fprint.freedesktop.org/supported-devices.html

*[2]PAM=Pluggable Authentication Modules 可动态加载验证模块,Linux-PAM是Linux系统的一个模块,负责进行身份或是状态的验证。PAM最初于1995年由SUM的研究人员提出并在Solaris 2.3 上部分实现。目前,各版本的UNIX系统都提供了对PAM的支持,除了具体实现不同外,这些PAM的框架都是相同的。在Linux中,PAM是可动态配置的,本地系统管理员可以自由选择应用程序如何对用户进行身份验证。PAM应用在许多程序与服务上,比如登录程序(login、su)的PAM身份验证(口令认证、限制登录),passwd强制密码,用户进程实时管理,向用户分配系统资源等。

要安装fprintd了——百度Linux相关的教程是一件很坑的事情,因为发行版不一样+版本不一样+桌面环境不一样,所以找到的东西都只能参考,明白思路,然后根据自己的环境去调整。

Debian的一个优点是这个软件包列表的官方网站https://www.debian.org/distrib/packages 搜下关键词fprint,就知道自己大概需要那些包了。

fprintd是核心(最后的d,对应D-bus或且deamon。),它依赖libfprint0,libpam-fprintd也是必须的,通过它才能搭起指纹设别与PAM之间的关联。

fprint-doc是文档,libfprint-dev是扩展的库。

fprint-demo是一个GUI小程序,用来测试指纹识别设备的情况——在这里注册指纹是没有意义的,这只是个测试的程序,能拿来验证设备是否正常。

——以上是debian9的相关包,其他发行版的包可能会不一样,还是那句话,根据自己的情况找找改改。比如说许多ubuntu的教程里,有个fingerprint-gui,或者说安装完成后指纹识别的选项集成到了系统设置的登陆界面中去,在我这的debian9+kde就没那么容易实现。

apt install 不废话。然后是pam-auth-update,配置PAM的次序,确保Fingerprint authentication被启用。

然后fprintd怎么用的问题,man一下就好了

注册指纹fprintd-enroll,查看指纹清单fprintd-list,验证测试指纹fprint-verify,删除指纹frpintd-delete

当我在PAM启用了指纹验证,并且注册了root的指纹(fprintd-enroll)之后,再su – 的时候,系统就会去调用指纹识别设备去鉴权,当然,验证失败之后,会退而求其次,让输入传统的密码。

这东西用起来还不错,尤其是在终端环境,特爽。但是我这套环境,没有很好集成在登陆界面,密码框是失效的,倘若指纹验证失败,就比较尴尬了,所以我目前只设置root的指纹。

结语:

今儿个记录这么个东西,主要还是觉得这东西给了我学习linux的一个很好的思路,解决问题的思路。很明显的,会了指纹识别fprint,面部识别的PAM-face-authentication就容易许多了。


已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注