2021年9月

{music id="38574742" color="#7c0e4e" autoplay="autoplay"/}

Howdy 是 Linux 上一个类似 Windows Hello,用电脑传感器人脸识别以解锁电脑的程序。

一、安装前的准备

1.开启系统全局代理

如果使用图形代理软件,比如clash等,直接手动点击开启全局即可。如果用的是命令行代理可以使用Polipo设置本地全局代理(proxychains无效)。

{alert type="info"}
polipo是类似clash作用的本地流量转发工具,并不提供代理服务器功能。所以你得先在本地开启ssr、trojan等代理,之后再使用polipo。 polipo具体使用(本地已经使用trojan开启了1080端口的socket5代理)
{/alert}

# 开启当前终端全局
export http_proxy=http://127.0.0.1:8123 https_proxy=http://127.0.0.1:8123

二、Howdy安装与配置

{alert type="info"}
对应linux发行版的howdy安装都可以在官方github上找到: https://github.com/boltgolt/howdy
这里主要介绍一下在shafish当前使用的manjaro i3wm系统下安装和使用howdy的流程 :@(得意) 。
{/alert}

1. Arch/Manjaro

# 会有资源下载和编译的步骤,如果没开全局代理,在下载资源时你会后悔得 :@(呲牙) 
yay -S howdy

2. Configuration

{alert type="success"}
howdy安装完成后会在/etc/pam.d目录中生成多个配置文件,每个配置文件都能绑定人脸识别来解锁对应的命令或操作。

  • 比如shafish电脑熄屏解锁用的i3clock,只要配置好i3lock文件,就可以使用人脸代替解锁密码;
  • 比如sudo,当第一次输入sudo命令时也同样需要输入密码,只要配置好sudo文件,就可以使用人脸代替密码;
    i3clock&sudo
    {/alert}

2.0 更改howdy文件夹权限

sudo chmod -R 755 /lib/security/howdy

2.1 设置扫描摄像头

# 展示本机的video设备,笔记本的话一般使用第一个就好:也就是/dev/video0
v4l2-ctl --list-devices

2.2 配置howdy扫描设备

/dev/video0配置到howdy中,表示要使用该设备做人脸扫描。

# 或者 直接运行 sudo howdy config ,默认使用nano编辑,使用ctrl+x保存退出
sudo vim /lib/security/howdy/config.ini 
# 修改device_path为/dev/video0
device_path = /dev/video0
# :wq保存退出

device_path

2.3 设置人脸数据

# sudo howdy -U username add 
sudo howdy -U shafish add # 提示label可以随便填

强烈建议输入多条数据,设置填入的label不同即可
face

2.4 设置i3lock人脸解锁

配置也很简单,只要在目录/etc/pam.d下对应的文件中加入auth sufficient pam_python.so /lib/security/howdy/pam.py即可。

[~]$ cat /etc/pam.d/i3lock                    
#
# PAM configuration file for the i3lock-color screen locker. By default, it includes
# the 'system-local-login' configuration file (see /etc/pam.d/system-local-login)
# for Arch and Gentoo and 'login' for Debian. Note that upstream uses only 'login',
# which doesn't work on Arch and Gentoo.
#
auth sufficient pam_python.so /lib/security/howdy/pam.py
auth include system-local-login # For Arch/Gentoo
#auth include login # For Debian

2.5 设置sudo使用人脸数据

[~]$ cat /etc/pam.d/sudo  
#%PAM-1.0
auth sufficient pam_python.so /lib/security/howdy/pam.py
auth        include        system-auth
account        include        system-auth
session        include        system-auth

ok,搞定。下次再使用i3clock和sudo命令时就不用输入密码咧, ::(狗头)

三、Howdy more

使用过程中出现warning 597、1034、2056可以设置环境变量 OPENCV_LOG_LEVEL=ERROR解决
  • 启用 Howdy 功能:sudo howdy disable 0
  • 禁用 Howdy 功能:sudo howdy disable 1
  • 添加人脸模型:sudo howdy -U username add
  • 清除所有面部模型记录:sudo howdy clear
  • 面部模型记录:sudo howdy list
  • 删除指定 ID 的面部记录:sudo howdy remove face_ID
  • 面部扫描测试:sudo howdy test
  • 更多:sudo howdy -h

ref:
https://wiki.archlinux.org/title/Howdy_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
https://github.com/boltgolt/howdy