[英]How to add facial recognition based login in ubuntu/linux?
我已經用python編寫了代碼來檢測我的臉。 現在,我想添加此功能以在我的Ubuntu系統中登錄。 我通過互聯網搜索,但找不到合適的答案。
我想顯示一個選項/圖標以選擇面部識別,然后單擊它,我的面部識別代碼開始在后台運行。 我該如何實現? 請確切說明我需要在ubuntu系統中進行哪些更改才能啟用和使用該選項?
您將要使用Linux-PAM允許您使用面部識別來Su / Sudo。 我已經在這里用python + bash腳本完成了此操作: https : //github.com/lambrou/susentry我已經參加了自述文件,並將根據您的問題向您解釋。
您需要做的第一件事是制作一個bash腳本來調用您的python腳本。
#!/bin/bash
# You must change the value /path/to/susentry.py to the path of your
# python file.
export DISPLAY=:0.0
xhost +local:
python3 /path/to/susentry.py -l # run the python script for facial recognition
exit_status=$? # This grabs the exit status of the python script we just ran
if [ "${exit_status}" -ne 0 ]; # checks to see if exit status is anything other than 0
then
echo "exit ${exit_status}"
exit 1 # exit status 1 on python script fail (exit 1)
fi
echo "EXIT 0"
exit 0 # exit 0 if we get to this line
該腳本的作用是將顯示設置為您的顯示,因為PAM模塊將從另一個用戶空間調用該腳本,我們需要告訴它您的顯示在哪里以及您使用的xhost。 然后,它獲取python腳本的退出狀態(確保在面部識別失敗后退出1,通過退出0)並將其傳遞給PAM,以告知腳本腳本是否通過或失敗。 找到這一行:
python3 /path/to/susentry.py -l
並將/path/to/susentry.py更改為python腳本的完整路徑。 然后,將此文件放在/ usr / local / bin文件夾中。
接下來,我們修改PAM common-auth文件:
gksudo gedit /etc/pam.d/common-auth
在您的common-auth文件中找到以下行:
auth [success=1 default=ignore] pam_unix.so nullok_secure
該行調用要求用戶輸入密碼的模塊。 如果模塊返回成功(密碼正確),則跳過下一行(成功= 1表示跳過一行)。 目標是如果身份驗證成功,則跳過以下行:
auth requisite pam_deny.so
由於此行拒絕用戶訪問特權。 因此,如果要使用su / sudo,而不是使用面部比較而不是輸入密碼,請將此內容放在上面的行上方:
auth [success=2 default=ignore] pam_exec.so debug log=/path/to/pamlogs.txt /usr/local/bin/susentry
確保將/path/to/pamlogs.txt更改為要保存PAM輸出的位置。 (此輸出是您的PAM,bash腳本和python腳本的錯誤輸出和stdin輸出)讓我們分解一下。
auth [success=2 default=ignore]
表示“如果此程序返回成功(退出0),則跳過接下來的2行。(密碼提示行,身份驗證失敗行)
pam_exec.so debug log=/path/to/pamlogs.txt
這部分說“使用pam_exec執行bash腳本,並將所有錯誤日志/ stdin日志發送到/path/to/pamlogs.txt
/usr/local/bin/susentry
這部分是bash腳本的位置。 這就是PAM exec運行並等待退出代碼的地方。
如果面部識別腳本失敗,則應退回要求輸入密碼。 請注意,在編輯/etc/pam.d/common-auth時需要小心,因為這樣會破壞sudo。 在您弄亂這些東西時,您可能希望使用root特權打開一個新終端,以便可以還原所做的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.