Howdy - Arch Linux 中文维基

跳至內容

# Howdy

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Howdy，最近一次同步於 2023-11-17，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

Howdy 是 Linux 上一個類似 Windows Hello，通過電腦的紅外傳感器識別人臉，解鎖電腦的程序。

## 安裝

安裝 howdy-gitAUR 軟體包。或者您也可以從archlinuxcn倉庫安裝howdyCNRepo(howdy包已無法在最新的archlinux上正常使用，因此推薦安裝howdy-gitAUR)。

注意：在該軟體包的使用過程中會從 GitHub 的 raw 伺服器下載文件，而中國大陸用戶連接該伺服器網絡不通暢，請確保你的網絡能正常連接。

## 配置

### 把 Howdy 設置為當需要時才使用

為了讓 Howdy 能夠對用戶進行身份驗證，您需要在使用了 Howdy 的 PAM 配置文件中做一些小改動。請把以下內容添加到對應的配置文件中：

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

注意：當使用 Howdy 3.0.0 BETA 及以上版本時(howdy-gitAUR)，這一行應該為：

    auth sufficient /lib/security/pam_howdy.so

為 `howdy/pam.py` (或 `pam_howdy.so`) 添加 sufficient 的控制標記後，將只提示進行人臉身份驗證。如果您無法中斷（`Ctrl+C`）面部識別過程（比如在解鎖屏幕和Polkit驗證窗口中），那您將無法使用密碼進行驗證。想要既能人臉識別，又能用密碼驗證，請把以下內容添加到 `/etc/pam.d/` 下對應的 PAM 配置文件的最頂部。

    auth sufficient pam_unix.so try_first_pass likeauth nullok

### 添加正確的紅外傳感器

可以在諸如 cheese包、fswebcamAUR 或者 v4l-utils包 的程序裡找到並確定能連接到紅外傳感器的正確 `/dev/videoX` 文件，

以內置於 v4l-utils包 軟體包的工具為例：

    $ v4l2-ctl --list-devices
    Integrated_Webcam_HD: Integrate (usb-0000:00:14.0-11):
            /dev/video0
            /dev/video1

    EyeChip: Tobii Video (usb-0000:00:14.0-3.4.3):
            /dev/video4
            /dev/video5

    HD Webcam C525 (usb-0000:00:14.0-3.4.4):
            /dev/video2
            /dev/video3

在上述例子中，有不止一個網絡攝像頭，而且每一個攝像頭都有好幾個不同的 `/dev/videoX` 路徑，一般來說選第一或第二個路徑會比較好。

如果攝像頭或紅外傳感器不止一個，使用 `/dev/videoX` 可能會隨著時間的推移而變得不穩定，因為它們的路徑可能會隨著某些設備的拆卸和裝入而改變。這時可以用由 Video 4 Linuxwikipedia:Video4Linux 提供的，更加穩定的 `/dev/v4l/by-id/` 路徑。

    $ ls -l /dev/v4l/by-id
    total 0
    lrwxrwxrwx 1 root root 12 Dec  3 15:01 usb-046d_HD_Webcam_C525_BE4703F0-video-index0 -> ../../video2
    lrwxrwxrwx 1 root root 12 Dec  3 15:01 usb-046d_HD_Webcam_C525_BE4703F0-video-index1 -> ../../video3
    lrwxrwxrwx 1 root root 12 Dec  3 14:47 usb-CNFGH19N306021000582_Integrated_Webcam_HD-video-index0 -> ../../video0
    lrwxrwxrwx 1 root root 12 Dec  3 14:47 usb-CNFGH19N306021000582_Integrated_Webcam_HD-video-index1 -> ../../video1
    lrwxrwxrwx 1 root root 12 Dec  3 14:47 usb-Tobii_Technology_AB_EyeChip_IS404-100109244721-video-index0 -> ../../video4
    lrwxrwxrwx 1 root root 12 Dec  3 14:47 usb-Tobii_Technology_AB_EyeChip_IS404-100109244721-video-index1 -> ../../video5

先驗證這些 `v4l` 路徑不隨設備的拆卸和裝入而改變，然後重列設備目錄（re-listing the directory）。

找到正確的文件名後，您就可以用自己喜歡的編輯器編輯 `/lib/security/howdy/config.ini` 文件，也可以以 root 用戶權限使用 `howdy config` 命令來編輯。

設定 `EDITOR` 變量來自定義 `howdy config` 使用的編輯器：

    # EDITOR=editor howdy config

### 向 Howdy 添加面部數據

要想添加面部模型，運行 `sudo howdy add`。

### 加固 Howdy

有些版本的 Howdy 會在識別用戶時拍照，然後保存到 `/lib/security/howdy/snapshots`。這某種程度來說是一個安全漏洞。攻擊者能夠輕易找到某次成功登錄的照片並用它來冒充您進行登錄，從而達到提權的目的。當然，攻擊者還可以使用目標用戶的任何其他照片，但是 Howdy 簡化了該過程。

為了避免這樣的攻擊，以及突然發現磁碟空間驟減，可以在 `/lib/security/howdy/config.ini` 中取消拍照：

    [snapshots]
    save_failed = false
    save_successful = false

## 疑難雜症

### 紅外發射器不工作

已啟用紅外攝像頭而紅外發射器不工作，沒準是因為你選錯了文件。打個比方，可能 `/dev/video0` 和 `/dev/video2` 都能識別你的臉部，但是只有 `/dev/video2` 會啟用紅外發射器，所以要試試所有的 `/dev/videoX` 路徑，看看有沒有哪個能正常工作。

如果還不行，試著跟從 linux-enable-ir-emitter 的指導啟用紅外發射器。

注意：由於上游代碼的原因，linux-able-ir-emitterAUR包的最新版本通過在安裝完成後會運行自己的腳本來生成 Systemd 服務文件。這種行為可能不是您想要的，因為它的自定義腳本會修改文件系統根目錄。目前已知在版本 `3.2.0-2` 之前，該軟體包都帶有 Systemd 服務文件，所以您可能需要選擇適合自己的版本。

### 測試紅外攝像頭

提前確認紅外攝像頭能正常運作是個挺不錯的主意，用 gstreamer包 軟體包的以下命令十連拍來測試設備（別忘了用你的紅外攝像機的位置替代下面的 `IR camera` ）：

    gst-launch-1.0 v4l2src device=IR camera num-buffers=10 ! image/jpeg ! multifilesink location="frame-%02d.jpg"

### Howdy 無法正常運轉

用 root 權限運行 `howdy test` 來確保 Howdy 正常工作，如果看起來一切正常，就檢查 PAM 配置並確認其正在工作。例如 SDDM [1] 的某些程序不能在 PAM 下正常工作，會造成一些出乎意料的結果。

如果您安裝的是2.x版本，您也可以嘗試使用beta版本howdy-beta-gitAUR，參見[2][3]。

### 輸入設備識別錯誤

例如 Thinkpad T480 的某些紅外傳感器需要在配置文件中定義框架高度和寬度：

    frame_width = 400
    frame_height = 400

獲取傳感器輸出的高度和寬度： `v4l2-ctl --list-devices --all`

分類：​

- 身份驗證

Howdy
新增話題