概述
干啥
是这样子的,我的笔记本使用的键盘是蓝牙的,然后无论是 win 还是 arch,蓝牙功能都是在登陆进系统之后才开启,这样每次输入密码我就得把身子往前靠、双手伸向笔记本输入密码。。。而 win 提供了一种优雅的方式登陆进入系统:Windows Hello - 人脸识别
这么便捷的方式 Linux 大法没有的话,咋说的过去呢?于是在一番搜索之下发现了 howdy,而且也支持我当前使用的 Arch Linux,废话不多说,开始捣鼓。
相关信息
- OS: Linux arch 5.11.6
- Laptop: Lenovo XiaoXin Pro 13 AMD 2020
动手
安装
AUR
由于 howdy 的官方发行安装包只有 deb,懒人大法已经准备好在 AUR 中了,需要一个 AUR 下载助手,我这里用的是 yay,以下以 yay 为例,还没有安装 yay 的可以参考Arch Linux yay - Kearney 2021-03-17进行安装
howdy
yay -S howdy
21:53 -
第一次下载了二十多分钟下载出错。。
22:16 -
23:04在下face_recognition_models-0.3.0.tar.gz剩下4.5h。。
11:56 -
shape_predictor_5_face_landmarks下载出错
12:19 - 12:30
安装完成
配置
配置 PAM
在Howdy - ArchWiki中是这么说的:你想用 howdy 通过 pam 来认证啥就在哪一个配置文件里的首行加入这行配置。
auth sufficient pam_python.so /lib/security/howdy/pam.py
看了一下 /etc/pam.d
下有39个配置文件,想认证 sudo
就改 /etc/pam.d/sudo
,想做人脸图像识别登陆(KDE, GNOME)就改 /etc/pam.d/system-local-login
sudo nano /etc/pam.d/sudo
# 在首行加入上面那行配置, Ctrl + S 保存, Ctrl + X 退出。
sudo nano /etc/pam.d/system-local-login
# 同上
sudo nano /etc/pam.d/sddm
# 同上
配置 howdy
主要是配置摄像头和录入人脸,我用 VLC 中的 媒体 - 打开捕获设备 - 高级选项(advance options), 里面的视频捕获设备是 /dev/video0
, 确定 - 播放 之后确实显示的摄像头的画面,因此确定了摄像头标识就是 /dev/video0
# kearney 是我的用户名,请注意修改
# 补上摄像头标识
sudo howdy -U kearney config
# 找到并补全 device_path = /dev/video0
# 添加人脸模型
sudo howdy -U kearney add
# 这里发生了一个错误。。。
Traceback (most recent call last):
File "/usr/bin/howdy", line 95, in <module>
import cli.add
File "/usr/lib/security/howdy/cli/add.py", line 11, in <module>
from recorders.video_capture import VideoCapture
File "/usr/lib/security/howdy/recorders/video_capture.py", line 6, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
这个错误是缺少opencv.。。但是用pacman -Qi howdy
和pacman -Qi opencv
发现两者已经安装上了。。到AUR - howdy下的 Comments 发现缺少的不是一个依赖。。。
补上依赖
pacman -S python-opencv
# 继续添加我的面子
sudo howdy -U kearney add
测试
重启一下先
sudo howdy test
如果出现 3 个 WARN
是正常的,是 GStreamer 的 warning 597、1034、2056,至于为什么可以看Howdy - ArchWiki中的 Troubleshooting,暂时的解决办法看 wiki,添加一个环境变量 OPENCV_LOG_LEVEL=ERROR
(会的盆友教一下我)。
根据 Howdy - LinuxReviews 中的描述,KDE 在登陆时并不会自动调用人脸识别登陆,需要点击一下登陆按钮才会启动 howdy(不需要输入密码哈)
总结
看了好几个不同的软件,大体上都是用的 PAM,只是实现方式上有所不同。目前我这里可以用人脸替代密码的情况有sudo、人脸识别登陆,其ta用途暂未想到。
参考
WSL Hello sudo brings Windows Hello authentication to Linux on WSL:可惜的是这个插件是用在 WSL 里的
boltgolt/howdy - Windows Hello™ style facial authentication for Linux :已支持 Debian/Ubuntu, Arch Linux, Fedora and openSUSE
Howdy - ArchWiki
Howdy - Linux 的人脸识别
face authentication for linux:2009 年谷歌出品,网络卡我还没看到
rushabh-v/linux_face_unlock: Ubuntu 人脸认证
saanuregh/hola:Windows Hello™ style facial authentication for Linux written in Rust
AUR - howdy
Howdy - LinuxReviews:sudo nano /etc/pam.d/sddm
Note that ssdm will not not activate the web camera and try to identify the user in front of it before a user account is selected and the > button to login is pressed.
最后
以上就是含蓄樱桃为你收集整理的在 Arch Linux 上使用人脸识别(howdy)来登陆和认证干啥动手总结参考的全部内容,希望文章能够帮你解决在 Arch Linux 上使用人脸识别(howdy)来登陆和认证干啥动手总结参考所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复