为linux添加人脸认证


为linux添加人脸认证

  • deepin的最新版本已经支持了人脸登陆,linux的东西都是开源的,那么对于其他linux版本,有没有类似的功能呢?
  • 答案是有的,让Linux拥有类似Windows Hello的体验,使用Howdy即可.

Howdy

安装

Howdy的github页面上介绍了各个发行版的安装方法,

  • 对于archlinux
yay -S howdy 
  • Ubuntu
    sudo add-apt-repository ppa:boltgolt/howdy
    sudo apt update
    sudo apt install howdy
  • 红帽系
    sudo dnf copr enable principis/howdy
    sudo dnf --refresh install howdy
  • openSUSE
    可以去github上详细查看.

配置

每个发行版下配置的方式不同

以archlinux为例吧,arch的wiki文档很丰富,汲取前人的经验照着做即可.

  1. 为sudo启用howdy认证
sudo vim /etc/pam.d/sudo

增加

auth sufficient pam_python.so /lib/security/howdy/pam.py

OzcajI.png

  1. 为锁屏启用
sudo vim /etc/pam.d/system-local-login

增加

auth sufficient pam_python.so /lib/security/howdy/pam.py

OzgfRH.png

  1. 如果要为登陆界面启用可以使用

    这个要看自己的使用的gdm还是sddm

sudo vim /etc/pam.d/sddm

增加

auth sufficient pam_python.so /lib/security/howdy/pam.py

我建议是只对sudo和锁屏后解锁启用
详细见wiki

添加正确的红外传感器

  1. 确认摄像头设备名

摄像头的文件名多为/dev/video0,/dev/video1,等等.可以通过工具确认,也可以自己尝试后确定.

  1. 修改howdy配置文件
    vim /lib/security/howdy/config.ini

Oz2lFO.png

  1. 测试
    suod howdy test
    OzR1H0.png

增加人脸模型并使用

  1. 人脸增加
    sudo howdy add 
  2. 其他配置

默认每次增加和识别都会拍一张照片存起来,可以配置关闭

sudo vim /lib/security/howdy/config.ini

#### 
[snapshots]
capture_failed = false
capture_successful = false

OzRIVP.png

  1. 使用和测试
    当使用sudo 命令时,不输入密码直接按enter会发现,可以执行sudo命令.
  2. 终端里有 GStreamer warnings
    临时解决方案是向全局或者每个用户加入OPENCV_LOG_LEVEL=ERROR 这个环境变量。
    可以在zsh或bash的配置文件中增加,也可以在profile文件中增加

小结

  • howdy在不同发行版上都有,装起来也比较方便.
  • 使用howdy要修改操作对应的配置文件
  • 对于opencv出现的警告,可以增加环境变量解决.

Author: 向天歌
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source 向天歌 !
  TOC