众所周知,windows是个出厂完整的操作系统,其中WindowHello人脸解锁非常方便,非常优雅。
但是,Linux也可以添加howdy来添加人脸识别!
安装
需要用到AUR, 我使用的是yay,输入命令安装howdy
yay -S howdy
注意,虽然懒人神器会给你补全依赖,但是也要下载python-opencv!!!
pacman -S python-opencv
下载较慢的可以看往期文章,代理终端来加快下载速度!
配置
在Howdy中是这么说的:你想用 howdy 通过 pam 来认证什么就在哪一个配置文件里的首行加入这行配置。
auth sufficient pam_python.so /lib/security/howdy/pam.py
/etc/pam.d
下的文件
ps:修改配置文件不要删除,如果想删除就用#注释掉,以防止发生意外( tty都改不好那种!)
除非你是硬汉,任何问题都重装解决
想人脸sudo就改 /etc/pam.d/sudo
想人脸KDE就改 /etc/pam.d/system-local-login
sudo nano /etc/pam.d/sudo
添加auth sufficient pam_python.so /lib/security/howdy/pam.py
sudo nano /etc/pam.d/system-local-login
添加auth sufficient pam_python.so /lib/security/howdy/pam.py
sudo nano /etc/pam.d/sddm
#添加auth sufficient pam_python.so /lib/security/howdy/pam.py
配置 howdy
首先确定自己的摄像头位置,可以用VLC来逐个尝试,估计一个摄像头有两个路径,但是只有一个可以调用红外摄像头进行人脸识别,逐个尝试吧!
找到之后,输入以下指令打开配置
sudo howdy -U 用户名 config
找到device_path =
添加你的设备路径
(不要照抄我的!!!看自己的)
如果输入设备识别错误
例如 Thinkpad T480 的某些红外传感器需要在配置文件中定义框架高度和宽度:
frame_width = 400 frame_height = 400
获取传感器输出的高度和宽度: v4l2-ctl --list-devices --all
好了,添加自己的人脸模型吧!
sudo howdy -U 用户名 add
要用sudo命令!不然可能会发生意外(比如录不上)。
测试一下吧!
sudo howdy test
正常情况下会有三个warnin,属于正常,如果不想让它显示,可以向全局或者每个用户加入 OPENCV_LOG_LEVEL=ERROR
这个环境变量。
有些版本的 Howdy 会在识别用户时拍照,然后保存到 /lib/security/howdy/snapshots
为了避免这样的攻击,以及突然发现磁盘空间骤减,可以在 /lib/security/howdy/config.ini
中取消拍照:
[snapshots]
capture_failed = false
capture_successful = false
KDE 在登陆时并不会自动调用人脸识别登陆,需要按一下回车才会启动人脸识别
好了,重启开启你的新体验吧!
在下面贴出pam.d的部分文件配置,防止改坏了开不开没法复原
sudo
#%PAM-1.0
auth include system-auth
account include system-auth
session include system-auth
system-local-login
GNU nano 6.2 /etc/pam.d/system-local-login
#%PAM-1.0
auth include system-login
account include system-login
password include system-login
session include system-login
sddm
GNU nano 6.2 /etc/pam.d/sddm
#%PAM-1.0
#auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
auth sufficient pam_python.so /lib/security/howdy/pam.py
auth required pam_unix.so shadow nullok
auth requiredpam_nologin.so
session optional pam_keyinit.so force revoke
session include system-login
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet5.so auto_start
auth required pam_securetty.so
auth requisite pam_noloogin.so
account include system-local-login
session include system-local-login
password include system-local-login
如果出意外了,比如解不开,进不去等,可以进入tty把/etc/pam.d中改过的复原!
评论
评论功能已经关闭!