🧠指纹识别认证

🌐─(root㉿wise)-[~]└─# lsusb | grep -i finger

🌐─(root㉿wise)-[~]└─#lsusb 

Bus 003 Device 005: ID 2541:9711 Chipsailing CS9711Fingprint

你的指纹仪设备是 ID 2541:9711 Chipsailing CS9711Fingprint(常出现于 GPD Win Max 2 等掌上掌机或特定外接设备中)。 
核心结论:原生的 fprintd 官方固件并不支持这款芯片。 如果你直接运行 fprintd-enroll,系统会提示找不到设备。你必须先通过第三方社区驱动对 libfprint 进行编译替换,然后才能启用指纹认证。
请按照以下修正后的专有步骤在 Kali 下进行配置:

🛠️ 第一步:安装编译依赖
由于需要从源码编译社区驱动,需要先安装编译工具链和图像处理库(该指纹仪驱动依赖 OpenCV 进行图像增强):
sudo apt update
sudo apt install -y git build-essential cmake meson ninja-build \
libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev \
libgirepository1.0-dev libopencv-dev libpam0g-dev pamtester


📦 第二步:编译安装社区版 libfprint-CS9711
使用开源社区针对该芯片定制的 libfprint 分支进行编译: [1, 2]
  1. 克隆社区驱动仓库
    git clone https://github.com/ddlsmurf/libfprint-CS9711.git
    cd libfprint-CS9711
    

  2. 使用 Meson 构建并编译
    meson setup builddirdir
    ninja -C builddirdir
    

  3. 将编译出的驱动库安装到系统
    sudo ninja -C builddirdir install
    

  4. 刷新动态链接库缓存,让系统识别新驱动:
    sudo ldconfig
    


👥 第三步:安装及配置 fprintd 服务
驱动安装完成后,再安装上层的管理服务:
sudo apt install fprintd libpam-fprintd -y

安装后,重启一下指纹服务以加载新驱动:
sudo systemctl restart fprintd


🖐️ 第四步:录入指纹(退出 root 账户)
极为重要: 你的终端提示符显示你当前处于 root 账户下(root@wise)。请勿在 root 账户下录入指纹,否则普通用户无法在登录时使用。
  1. 切换回你的普通日常用户(假设你的用户名叫 wise,如果不是请替换):
    su - wise
    

  2. 以普通用户身份执行录入:
    fprintd-enroll
    

    注意:Chipsailing 这款芯片的检测机制在 Linux 下需要比较高的匹配度,终端会提示你反复按压手指。请耐心连续按压并抬起 12 ~ 15 次左右,直至显示 enroll-completed 成功。


🔐 第五步:接管系统认证 (PAM)
录入成功后,重新切换回 root 或使用 sudo 开启系统开关:
sudo pam-auth-update
在弹出的蓝色菜单中,使用空格键勾选 Fingerprint authentication,按 Tab 键<Ok> 保存退出。


🛠️ 解决办法:

apt install libudev-dev -y
apt install libgudev-1.0-dev -y
apt install libcairo2-dev -y
apt install doctest-dev -y
apt install gtk-doc-tools -y

  • 手动为 doctest 生成 pkg-config 引导文件(核心步骤):
    直接复制并运行以下整段命令,为系统补齐 doctest.pc 配置文件:
    sudo mkdir -p /usr/share/pkgconfig
    cat << 'EOF' | sudo tee /usr/share/pkgconfig/doctest.pc
    prefix=/usr
    includedir=${prefix}/include
    Name: doctest
    Description: Header-only C++ test framework
    Version: 2.4.11
    Cflags: -I${includedir}/doctest
    EOF
    
  1. 清理并重新生成配置
    rm -rf builddirdir
    meson setup builddirdir
    

  2. 继续编译与安装
    bash
    ninja -C builddirdir
    sudo ninja -C builddirdir install
    sudo ldconfig
    sudo systemctl restart fprintd
    


🎉 下一步:开始录入指纹
一旦上述编译和安装成功(无红字报错),底层不兼容的问题就已经彻底解决。请立刻按以下步骤执行指纹录入:
  1. 务必退出 root 账户,切换回你的普通用户(假设用户名为 wise):
    su - wise
    

  2. 开始录入指纹
    fprintd-enroll
    
    🔐 第二步:开启系统指纹认证开关 (PAM)
    指纹录入成功后,必须允许 Kali 系统在提权和登录时调用它。
    1. 重新切换回 root 账户(或在另一个终端使用 sudo):
      sudo pam-auth-update
      

    2. 在弹出的蓝色菜单中,使用键盘的 方向键 移动光标找到 Fingerprint authentication
    3. 空格键 勾选它(使其前面显示为 [*] )。
    4. Tab 键 切换到下方的 <Ok>,然后回车保存退出。

    🚀 第三步:享受免密快感
    • 测试终端免密提权
      新开一个普通用户终端,随便执行一个需要 root 权限的命令:
      sudo apt update
      

      此时终端不会让你敲键盘输密码,而是直接提示:
      Place your finger on the fingerprint reader(请将手指放在指纹仪上)。摸一下指纹仪,即可直接畅行。

    • 测试锁屏解锁
      按下快捷键 Super + L(或 Ctrl + Alt + L)锁定屏幕。在唤醒后的解锁界面,直接刷指纹即可秒进桌面。
    💡 终极小贴士
    由于 Linux 安全机制,电脑冷开机/重启后的第一次登录,系统为了解密密钥环,依然会强制你手动输入一次密码。开机进去之后的日常锁屏解锁、sudo 提权,就都可以完美使用指纹了!

版权声明:
作者:yxbinghe
链接:https://www.zhanhao.ch/?p=702
来源:ice.99
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>