Linux Howdy 人脸安装配置

发布日期:2026-04-18
Google AdSense 广告位 (待申请通过后开启)

1. 安装 Howdy(推荐步骤)

python依赖包升级太频繁,无论是fedora redhat alma,都不建议用dnf依赖包安装,

这种方式安装的都要再次手改引入python配置,dnf或pip安装的howdy必须全部卸掉,

否则配置容易起冲突,很难稳定成功的,后续还会出问题,推荐用原生编译安装配置最稳当靠谱。

之前的版本可以这样安装,最新发布的都不行了,howdy发布版本也做了编译改进了,之前那套编译命令也不行了,注意看官方文档,里面有详细说明。

主要有三步安装:1.v4l2-ctl安装 2.howdy安装 3.howdy下载人脸识别模型数据,只要这三步安装好了,后面基本就稳了,配置非常简单容易。

v4l2-ctl安装

v4l-utils 移除了旧的配置脚本 需要用现代的 Meson 构建工具将其编译并安装到系统中

# 1. 安装编译和 Meson 所需的依赖
sudo dnf install -y meson ninja-build gcc gcc-c++ gettext-devel

# 2. 进入之前的克隆目录(如果删了,请重新 git clone git://linuxtv.org/v4l-utils.git)
mkdir ~/test/
git clone git://linuxtv.org/v4l-utils.git
cd ~/test/v4l-utils

# 3. 初始化并配置编译环境
meson setup build

# 4. 执行编译
ninja -C build

# 5. 安装至系统(这一步完成后,你就可以使用 v4l2-ctl 命令了)
sudo ninja -C build install

v4l2-ctl功能测试

v4l2-ctl --list-devices

v4l2-ctl --device=/dev/video0 --list-formats-ext
v4l2-ctl --device=/dev/video2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'GREY' (8-bit Greyscale)
Size: Discrete 640x360
Interval: Discrete 0.067s (15.000 fps)

howdy安装

sudo dnf install -y python3-devel cmake opencv opencv-devel pam-devel

# 2. 安装 Python 端的依赖项(建议通过系统的 pip 补全)
pip3 install --user dlib meson elevate keyboard

git clone https://github.com/boltgolt/howdy.git
cd howdy

meson setup build
ninja -C build
sudo ninja -C build install

howdy下载人脸识别模型数据

sudo find /usr -type d -name "howdy" 2>/dev/null
sudo find /usr -type d -name "dlib-data" 2>/dev/null
sudo mkdir -p /usr/local/share/dlib-data/
ls /usr/share/howdy/dlib-data/
cd /usr/share/howdy/dlib-data/
sudo wget http://dlib.net
sudo bzip2 -d shape_predictor_5_face_landmarks.dat.bz2

#核对模型数据,如果有了这些数据前提基本就稳了,后面的基本不会出大问题

ll /usr/local/share/dlib-data

total 31604

-rw-r--r--. 1 root root 22466066 May 13 01:10 dlib_face_recognition_resnet_model_v1.dat

-rwxr--r--. 1 root root 1322 May 13 00:36 install.sh

-rw-r--r--. 1 root root 729940 May 13 01:10 mmod_human_face_detector.dat

-rwxr--r--. 1 root root 414 May 13 00:36 Readme.md

-rw-r--r--. 1 root root 9150489 May 13 01:10 shape_predictor_5_face_landmarks.dat

2. 测试与基本配置

sudo howdy add

sudo howdy list

sudo howdy config

device_path = /dev/video2

dark_threshold = 100

certainty = 4.0

3. PAM 配置

修改sudo认证文件

排查位置

ls -al /usr/local/lib64/security/pam_howdy.so 
ls -al /usr/lib64/security/pam_howdy.so

注意:

/usr/lib64/security/pam_howdy.so 所在系统目录,不需要写完整路径 直接 pam_howdy.so 能识别到

/usr/local/lib64/security/pam_howdy.so 如果所在是用户目录,最好写完整路径,以免识别不到

sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak
sudo vim /etc/pam.d/sudo
#%PAM-1.0
auth sufficient /usr/local/lib64/security/pam_howdy.so
auth include system-auth
account include system-auth

修改GNOME锁屏认证文件

sudo cp /etc/pam.d/gdm-password /etc/pam.d/gdm-password.bak
sudo vim /etc/pam.d/gdm-password
auth sufficient /usr/local/lib64/security/pam_howdy.so

auth sufficient pam_unix.so try_first_pass likeauth nullok

##just edit top 2 lines

auth sufficient /usr/local/lib64/security/pam_howdy.so
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth substack password-auth
auth optional pam_gnome_keyring.so
auth include postlogin

4. 权限与 SELinux 修复(AlmaLinux/Fedora 必做)

sudo usermod -aG video gdm

sudo setenforce 0

WIN+L test... auto login

sudo ausearch -m avc -ts recent | audit2allow -M howdy_camera

sudo semodule -i howdy_camera.pp

策略内容已经加载并存储到系统的策略库中 重启后测试OK就可以删除了

reboot and rm howdy_camera.*

5. Python 版本升级修复(howdy-fix-compare)

后面若是出现版本升级识别不了

ll /usr/local/lib64/python3.12/site-packages

先核对根据实际情况再替换引入

sudo sed -i '/import dlib/i import sys; sys.path.insert(0, "/usr/local/lib64/python3.12/site-packages")' /usr/local/lib64/howdy/compare.py

我提供了自动修复工具 https://github.com/pixel-jey/devops-handy-tools/blob/main/opt/sh/howdy-fix-compare.sh

推荐使用:

命令或浏览器直接下载本地执行

wget https://github.com/pixel-jey/devops-handy-tools/blob/main/opt/sh/howdy-fix-compare.sh

chmod a+x howdy-fix-compare.sh

sudo mkdir -p /opt/sh/
sudo mv howdy-fix-compare.sh /opt/sh/
sudo chown -R root:root /opt/sh/howdy-fix-compare.sh
sudo ln -s /opt/sh/howdy-fix-compare.sh /usr/bin/howdy-fix-compare
sudo howdy-fix-compare

6. 验证

重启系统,测试锁屏/登录。

执行 sudo -i 测试是否自动识别。

失败时应 fallback 到密码。

7. 总结

如果真要保证绝对的安全性,启动的时候,还是要输入密码,这样比较安全。

将 Howdy(人脸识别)与 Password Key(如 YubiKey 等硬件安全密钥)配合使用,可以显著提升系统的安全性。

Explore More

Technology Guides →

Linux 分区命令实战:fdisk、parted、lsblk 使用教程

How to Enable PHP OPcache for Better Performance | Complete Guide

Firefox vs Chrome on Linux: Why Firefox Remains the Default Choice

Building a Linux Command Search Tool with Java Swing

Southeast Asia Insights →