私はラップトップを使用しています。 Ubuntuマシンでサポートすることを考えていました。間違ったパスワードを入力すると、後でアクセスしようとしている人を明らかにする写真が撮られます。
私はあちこち検索しましたが、私が見つけた唯一のことはMacでこれを行うものです。 Ubuntuが同じことをするためのスクリプトを書くことは可能ですか?.
可能であれば、これを実現するスクリプトまたはソフトウェアは何ですか。
この投稿 に基づく BkkBonanza によるUbuntuforums.
これはPAMを使用するアプローチであり、失敗したすべてのログイン試行に対して機能します。 SSH、仮想端末、または通常のログイン画面を使用すると、すべてが最終的にPAMによって処理されるため、問題ではありません。
インストール ffmpeg 、これをウェブカメラの画像を取得するコマンドラインの方法として使用します。 Update:Ubuntu 14.04にアップグレードすると、ffmpegは削除されます。以下のスクリプトでは、ffmpegの代わりにavconvを使用できます。個別に何かをインストールする必要はありません。
どこかに小さなスクリプトを作成します。 /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
(Sudo apt-get install libav-tools
)の代わりにffmpeg
を使用します。
実行可能にします。 chmod +x /usr/local/bin/grabpicture
。
/usr/local/bin/grabpicture
を呼び出すだけでテストします。 /tmp/vid....jpg
にファイルが表示されるかどうかを確認します。
失敗するたびにこれを呼び出すようにPAMを構成します。
注:これを慎重に行う-これが失敗した場合、通常の方法でシステムに再度アクセスすることはできません。
Sudo -i
)でターミナルウィンドウを開き、開いたままにします-次の手順で失敗した場合に備えて。/etc/pam.d/common-auth
を開きます。 gksudo gedit /etc/pam.d/common-auth
を実行します。このファイルの行の順序が重要である以下の手順に留意してください。以下の行を見つけます。デフォルトでは、1行beforeがpam_deny.so
の行です。 12.04システムでは、次のようになります。
auth [success=1 default=ignore] pam_unix.so nullok_secure
この行でsuccess=1
をsuccess=2
に変更して、成功時にスクリプトをスキップします。これは重要なステップです。
すぐ下に、新しいスクリプトを追加して実際のスクリプトを呼び出します。
auth [default=ignore] pam_exec.so seteuid /usr/local/bin/grabpicture
ファイルを保存して閉じます。何も再起動する必要はありません。
試して。
su -l username
を試して、ユーザー名username
を使用して別のユーザーとしてログインします(もちろん実際のユーザーで変更します)。故意に間違ったパスワードを入力してください。この結果が新しい写真になるかどうかを確認してください。テストが成功した場合、DE(Unity/KDE/...)からログアウトできます。ログイン画面から間違ったパスワードを入力すると、同じように表示されます。