Linux

輸入錯誤密碼後使用筆記型電腦網路攝像頭拍照

  • March 29, 2020

我想設置我的筆記型電腦,以便在螢幕鎖定時輸入錯誤的密碼,使用筆記型電腦的網路攝像頭拍照。我檢查了xlock(來自xlockmore包),但是當輸入錯誤的密碼時,沒有選項可以執行自定義操作。

SuperUser 上有一個類似的問題,但只針對 Windows:輸入錯誤密碼後拍照

(對於那些喜歡有趣的貓照片的人:我的筆記型電腦設置為在 3 次錯誤密碼嘗試後拍照。)

由gertvdijk在 ask Ubuntu 上複製了這篇文章, mazs在評論中指出。在努力結束這個問題。


基於BkkBonanza 在 Ubuntuforums 上的這篇文章

這是一種使用 PAM 的方法,適用於所有失敗的登錄嘗試。使用 SSH、虛擬終端或通過正常登錄螢幕,這並不重要,因為所有事情最終都由 PAM 處理。

  1. 安裝ffmpeg,我們將使用它作為獲取網路攝像頭圖像的命令行方式。更新:升級到 Ubuntu 14.04 時,ffmpeg 被刪除。我們可以在下面的腳本中使用 avconv 代替 ffmpeg。無需單獨安裝任何東西。
  2. 在某處創建一個小腳本,例如/usr/local/bin/grabpicture具有以下內容
#!/bin/bash
ts=`date +%s`
ffmpeg -f video4linux2 -s vga -i /dev/video0 -vframes 3 /tmp/vid-$ts.%01d.jpg
exit 0  #important - has to exit with status 0

使用網路攝像頭的實際影片設備更改 /dev/video0 並選擇保存圖片的路徑 - 我只是選擇/tmp. 在較新版本的 Ubuntu 中,使用( )avconv代替。ffmpeg``sudo apt-get install libav-tools 3. 使其可執行,例如chmod +x /usr/local/bin/grabpicture. 4. 測試它,只需呼叫它:/usr/local/bin/grabpicture. 檢查您是否看到文件出現在/tmp/vid....jpg. 5. 將 PAM 配置為在每次嘗試失敗時呼叫它。

注意:請謹慎操作 - 如果失敗,您將無法以正常方式再次訪問您的系統。

  1. 打開具有 root 訪問權限的終端視窗 (sudo -i) 並保持打開狀態 - 以防萬一您在接下來的步驟中搞砸了。
  2. 在您喜歡的編輯器中打開/etc/pam.d/common-auth,例如通過gksudo gedit /etc/pam.d/common-auth. 請記住以下步驟,此文件中的行順序很重要。
  3. 找到下面的行。預設情況下,在帶有pam_deny.so. 在我的 12.04 系統上,它看起來像這樣:
auth    [success=1 default=ignore]      pam_unix.so nullok_secure
 在這一行中,將 success=1 更改為 success=2 以使其跳過我們的成功腳本。這是重要的一步。
 就在下面,添加一個新的來呼叫實際的腳本:
th    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
 保存並關閉文件。無需重新啟動任何東西。
6. 測試一下。


 在一個新的終端視窗中,作為普通使用者,嘗試`su -l username`以另一個使用者的使用者名登錄`username`(當然要更改為實際使用者)。故意輸入錯誤的密碼。檢查這是否會產生新圖片。
 同上,但現在輸入正確的密碼。檢查您是否登錄並且它不會導致拍照。
7. 如果測試成功,您可以從 DE (Unity/KDE/...) 註銷,並且在登錄螢幕輸入錯誤密碼時應該會看到相同的結果。

引用自:https://unix.stackexchange.com/questions/289476