Bisakah saya membuat webcam mengambil gambar ketika kata sandi yang salah dimasukkan?


72

Saya menggunakan laptop. Saya berpikir untuk memiliki dukungan di mesin Ubuntu saya. Ketika kata sandi yang dimasukkan salah, suatu gambar diambil kemudian mengungkapkan siapa yang telah mencoba untuk mendapatkan akses.

Saya telah mencari-cari dan satu-satunya hal yang saya temukan adalah hal-hal untuk melakukan ini di Mac. Apakah mungkin untuk menulis skrip untuk Ubuntu untuk melakukan hal yang sama.

Jika memungkinkan maka apa yang dimaksud dengan skrip atau Perangkat Lunak untuk mewujudkannya.


Gambar pada layar login lightdm atau sesuatu seperti screensaver yang dilindungi kata sandi (Pada dasarnya sebelum masuk atau setelah masuk)?
Luis Alvarado

Ya gambar pada layar login lightdm ketika pengguna memasukkan kata sandi yang salah.
twister_void

3
Solusi "Tepat" melalui PAM di Ubuntuforums . Oke saya akan posting ini sebagai jawaban. :)
gertvdijk

Atau, instal aplikasi pihak ketiga seperti Prey . Itu tidak melakukan persis seperti yang Anda minta, tetapi ia mengkhususkan diri dalam melindungi dan memulihkan komputer Anda dalam kasus pencurian.
Paddy Landau

Jangan lupa untuk menyebutkan penggunaan webcam mengambil gambar jika Anda berada di lingkungan yang sensitif / terlindungi.
pl1nk

Jawaban:


59

Berdasarkan posting ini di Ubuntuforums oleh BkkBonanza .

Ini adalah pendekatan menggunakan PAM dan akan bekerja untuk semua upaya login gagal. Menggunakan SSH, terminal virtual atau melalui layar login biasa, tidak masalah karena semuanya ditangani oleh PAM pada akhirnya.

  1. Instal ffmpegInstal ffmpeg , kita akan menggunakan ini sebagai cara baris perintah untuk mengambil gambar webcam. Pembaruan : ffmpeg dihapus ketika Anda memutakhirkan ke Ubuntu 14.04. Kita dapat menggunakan avconv sebagai ganti ffmpeg dalam skrip di bawah ini. Tidak perlu menginstal apa pun secara terpisah.

  2. Buat skrip kecil di suatu tempat, misalnya /usr/local/bin/grabpicturedengan konten berikut:

    #!/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

    Ubah /dev/video0dengan perangkat video sebenarnya dari webcam Anda dan pilih jalur di mana gambar disimpan - Saya hanya memilih /tmp. Dalam versi Ubuntu yang lebih baru, gunakan avconvbukannya ffmpeg( sudo apt-get install libav-tools).

  3. Jadikan itu dapat dieksekusi, mis chmod +x /usr/local/bin/grabpicture.

  4. Mengujinya, dengan hanya menyebutnya: /usr/local/bin/grabpicture. Periksa apakah Anda melihat file muncul /tmp/vid....jpg.

  5. Konfigurasikan PAM untuk memanggil ini pada setiap upaya yang gagal.

    Catatan: lakukan ini dengan hati-hati - jika gagal, Anda tidak akan dapat memperoleh akses ke sistem Anda lagi secara teratur.

    1. Buka jendela terminal dengan akses root ( sudo -i) dan biarkan terbuka - kalau-kalau Anda mengacaukan pada langkah berikutnya.
    2. Buka /etc/pam.d/common-authdi editor favorit Anda, misalnya dengan melakukan gksudo gedit /etc/pam.d/common-auth. Ingatlah untuk langkah-langkah berikut yang mengatur urutan baris dalam file ini.
    3. Temukan baris di bawah ini. Secara default ada satu baris sebelum dengan pam_deny.so. Pada sistem 12.04 saya terlihat seperti ini:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. Pada baris ini ubah success=1ke success=2untuk membuatnya melewatkan skrip kami jika berhasil. Ini merupakan langkah penting.

    5. Tepat di bawah sana, tambahkan yang baru untuk memanggil skrip aktual:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
    6. Simpan dan tutup file. Tidak perlu memulai kembali apa pun.

  6. Menguji.

    1. Di jendela terminal baru, sebagai pengguna biasa, cobalah su -l usernamemasuk sebagai pengguna lain dengan nama pengguna username(tentu saja ganti dengan yang sebenarnya). Masukkan kata sandi yang salah dengan sengaja. Periksa apakah ini menghasilkan gambar baru.
    2. Sama seperti di atas, tetapi sekarang masukkan kata sandi yang benar. Periksa apakah Anda masuk dan itu tidak menghasilkan gambar yang diambil.
  7. Jika tes telah berhasil, Anda dapat keluar dari DE Anda (Unity / KDE / ...) dan Anda akan melihat hal yang sama ketika memasukkan kata sandi yang salah dari layar login.


9
Itu pintar. Dua pertanyaan: (1) Tidakkah seharusnya Anda menggunakan folder selain /tmp, karena /tmpdihapus setiap kali Anda reboot? (2) Bagaimana Anda tahu apa perangkat video Anda yang sebenarnya?
Paddy Landau

6
Ini berfungsi tetapi saya ingin menambahkan 3 hal. (1) Kita dapat menggunakan / var / tmp yang tidak dihapus saat reboot. (2) Tapak dengan solusi ini dengan hati-hati karena mungkin terjebak dalam loop tak terbatas dari "mode grafis rendah" dan / atau "memeriksa kondisi baterai", seperti saya. (3) Jika Anda macet, reboot dan masuk ke mode pemulihan (tekan shift kiri); pilih "mode grafis yang gagal" dan lihat apakah / sudah terpasang RW; sekarang drop ke root shell; cd ke /etc/pam.d; chmod common-auth ke RW, edit menggunakan nano untuk menghapus baris yang ditambahkan untuk memanggil skrip grabpicture; menyimpan; keluar; reboot
Sri

5
Saya tahu mengapa PC saya macet. Langkah 5.3 hingga 5.5 dalam jawaban perlu disesuaikan sesuai dengan baris apa yang dimiliki oleh file authp umum. Common-auth saya juga memiliki baris lain untuk pam_winbind.so di antara baris yang memiliki pam_unix.so dan pam_deny.so. Pada dasarnya baris auth pada "sukses" perlu melewati skrip penangkapan serta baris pam_deny.so.
Sri

Saya juga mencoba konsep yang sama tetapi jawaban yang disebutkan di atas tidak berfungsi, itu membuat saya kesalahan grafis rendah, tidak mengambil gambar atau pesan kesalahan untuk upaya yang salah. .. Apa yang harus dilakukan selanjutnya? (gertvdijk)
SachiN

1
mungkin harus diperbarui untuk menggunakan avconv atau opencv sebagai lawan dari ffmpeg yang sekarang sudah tidak digunakan lagi
RobotHumans
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.