Skip to content

krteke/as608-driver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AS608 Linux Driver & PAM Module

Rust Linux License

这是一个基于 Rust 编写的 Linux 指纹驱动和 PAM 模块。

专为 AS608 指纹模块设计。没有测试过在 R307 / R503 上是否可用。

它允许你通过 USB-TTL 转换器将这些廉价的嵌入式指纹模块连接到台式机或笔记本上,并实现:

  • 🚀 Sudo 提权认证:在终端执行 sudo 时刷指纹,无需输入密码。
  • 🔒 锁屏解锁:支持 kscreenlocker (及其他支持 PAM 的锁屏工具) 指纹解锁。
  • 👥 多用户映射:支持将同一个指纹 ID 映射到多个 Linux 用户(如 root 和普通用户)。

注意:本项目采用 UART 串口通信协议,不支持 笔记本自带的 USB 协议指纹识别器。


🛠️ 硬件准备

你需要以下大约 50 元人民币的硬件:

  1. 指纹模块:AS608。
  2. USB 转 TTL 模块:CH340 (CP2102应该也可以, 但是贵一些)。
  3. 连接线:4 根杜邦线。

接线指南

指纹模块 USB-TTL 模块 说明
VI 3.3V / 5V 模块主电源,接 3.3V
GND GND 地线
TX RX / RXD 模块发,电脑收
RX TX / TXD 模块收,电脑发
其他线 - 悬空

📦 编译与安装

1. 依赖准备

确保安装了 Rust 工具链以及 PAM 开发库。

  • Arch Linux: sudo pacman -S rust cargo pam

2. 编译项目

git clone https://github.com/krteke/as608-driver.git
cd as608-driver
cargo build --release

3. 安装文件

将编译好的二进制文件和动态库复制到系统目录:

# 安装 CLI 管理工具
sudo cp target/release/as608_tool /usr/local/bin/

# 安装 PAM 模块 (Arch 路径)
sudo cp target/release/libas608_pam.so /usr/lib/security/
# 注意:Ubuntu/Debian 用户路径通常是 /lib/x86_64-linux-gnu/security/

4. 配置 Udev 规则 (关键)

为了让普通用户(以及锁屏程序)能访问 USB 设备,必须配置 Udev 规则并固定设备名。

创建文件 /etc/udev/rules.d/99-as608.rules,写入以下内容: (此处示例的 idVendor 为 CH340 芯片的 USB 转 TTL 模块, 其他芯片可以使用 lsusb 指令来查看设备 ID, 一般取前四位就够了)

# 赋予读写权限,创建 /dev/as608 软链接,并设置 ID_MM_DEVICE_IGNORE 防止 ModemManager 干扰

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", MODE="0666", SYMLINK+="as608", ENV{ID_MM_DEVICE_IGNORE}="1"

重载规则:

sudo udevadm control --reload-rules && sudo udevadm trigger

检查 /dev/as608 是否存在且权限正确。 (软链接指向的文件权限应为crw-rw-rw-)


🖐️ 使用指南

录入 / 删除 / 搜索指纹

使用 TUI 工具录入指纹。因为需要写入 /etc 下的配置文件,必须使用 sudo

sudo as608_tool

会出现选择界面,可以选择录入 / 删除 / 搜索指纹

  • 程序会自动寻找空闲的指纹 ID 或者使用输入的指纹 ID。
  • 按提示按压两次手指。
  • 录入成功后,数据会保存在硬件 Flash 和 /etc/as608_config.toml 中。

🔐 启用指纹认证 (PAM 配置)

⚠️ 警告:不要直接修改 /etc/pam.d/system-auth,因为这可能导致 SDDM/GDM 登录界面卡死。

最佳实践是只为 sudo锁屏 启用指纹(可以覆盖90%的使用场景)。

1. 启用 Sudo 指纹支持

编辑 /etc/pam.d/sudo,在文件最开头添加:

auth    sufficient      libas608_pam.so

2. 启用 KDE 锁屏支持

/usr/lib/pam.d/kde 的文件复制到 /etc/pam.d/kde ,在 /etc/pam.d/kde 文件最开头添加:

auth    sufficient      libas608_pam.so

⚙️ 配置文件说明

配置文件位于 /etc/as608_config.toml,由 CLI 工具自动管理,但你也可以手动编辑。

[[fingerprints]]
id = 0
name = "右手食指"
users = ["zhangsan", "root"]

[[fingerprints]]
id = 1
name = "左手拇指"
users = ["zhangsan"]

📜 许可证

本项目基于 GPLv3 许可证开源。


🌟 如果这个项目对你有帮助,请给个 Star!

About

AS608 Driver && PAM Module && Tool For Linux

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages