Yanlış bir şifre girildiğinde web kamerasının fotoğraf çekmesini sağlayabilir miyim?


72

Dizüstü bilgisayar kullanıyorum Ubuntu makinemde bir destek almayı düşünüyordum. Yanlış bir şifre girildiğinde, daha sonra kimin erişmeye çalıştığını gösteren bir resim çekilir.

Etrafı araştırdım ve bulduğum tek şey Mac’lerde yapmam gereken şeyler. Ubuntu'nun da aynısını yapması için bir senaryo yazmak mümkün mü?

Mümkünse, bunun gerçekleşmesi için bir komut dosyası veya Yazılım nedir.


Lightdm giriş ekranında bir resim veya şifre korumalı bir ekran koruyucu gibi bir şey (Temelde giriş yapmadan önce veya giriş yaptıktan sonra)?
Luis Alvarado,

Evet, kullanıcı yanlış şifre koyduğunda lightdm giriş ekranında resim.
twister_void

3
Ubuntuforums'ta PAM aracılığıyla "Uygun" bir çözüm . Tamam, bunu bir cevap olarak göndereceğim. :)
gertvdijk

Alternatif olarak, Prey gibi bir üçüncü taraf uygulaması yükleyin . Tam olarak istediğiniz gibi yapmaz, ancak hırsızlık durumunda bilgisayarınızı koruma ve kurtarma konusunda uzmanlaşmıştır.
Paddy Landau

Duyarlı / korumalı bir ortamda olmanız durumunda web kamerası fotoğrafını çekmeyi unutmayın.
13'te pl1nk

Yanıtlar:


59

Bu yazıya dayanarak Ubuntuforums'ta BkkBonanza .

Bu, PAM kullanan bir yaklaşımdır ve tüm başarısız oturum açma girişimleri için çalışacaktır. Sanal bir terminal olan SSH veya normal giriş ekranı aracılığıyla, her şeyin sonunda PAM tarafından ele alınması önemli değildir.

  1. Ffmpeg'iFfmpeg'i kurun kurun , bunu web kamerası görüntülerini almanın komut satırı yolu olarak kullanacağız. Güncelleme : Ubuntu 14.04'e yükselttiğinizde ffmpeg kaldırıldı. Ffmpeg yerine avconv komutunu aşağıdaki komut dosyasında kullanabiliriz. Ayrı bir şey yüklemenize gerek yok.

  2. Bir yerde küçük bir komut dosyası oluşturun, örneğin /usr/local/bin/grabpictureaşağıdaki içerikle:

    #!/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/video0Web kameranızın gerçek video cihazı ile değiştirin ve resimlerin kaydedileceği bir yol seçin - sadece seçiyorum /tmp. Ubuntu'nun yeni sürümünde ( ) avconvyerine kullanın .ffmpegsudo apt-get install libav-tools

  3. Çalıştırılabilir hale getirin, örneğin chmod +x /usr/local/bin/grabpicture.

  4. Sadece çağırarak, test edin: /usr/local/bin/grabpicture. Dosyaların görünüp görünmediğini kontrol edin /tmp/vid....jpg.

  5. Her başarısız denemede PAM'ı bu şekilde çağırmak için yapılandırın.

    Not: Bunu dikkatlice yapın - Bu başarısız olursa sisteminize düzenli bir şekilde tekrar erişemezsiniz.

    1. Kök erişimi olan bir terminal penceresi açın ( sudo -i) ve açık bırakın - sadece sonraki adımlara batırdığınız takdirde.
    2. /etc/pam.d/common-authFavori düzenleyicinizde açın , örneğin yaparak gksudo gedit /etc/pam.d/common-auth. Bu dosyadaki satır sırasının önemli olduğu aşağıdaki adımları unutmayın.
    3. Aşağıdaki çizgiyi bulun. Varsayılan olarak öncekinden önce bir satır vardır pam_deny.so. Benim 12.04 sistemimde şöyle görünüyor:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. Bu satırda değiştirmek success=1için success=2bu başarı bizim komut atlamak için. Bu önemli bir adım.

    5. Tam orada, asıl betiği çağırmak için yeni bir tane ekleyin:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
    6. Dosyayı kaydedin ve kapatın. Hiçbir şeyi yeniden başlatmanıza gerek yok.

  6. Dene.

    1. Yeni bir terminal penceresinde, normal bir kullanıcı olarak, su -l usernamekullanıcı adıyla başka bir kullanıcı olarak giriş yapmayı deneyin username(gerçek bir taneyle değiştirin). Kasten yanlış şifreyi girin. Bunun yeni bir fotoğrafla sonuçlanıp sonuçlanmadığını kontrol edin.
    2. Yukarıdakiyle aynı, ancak şimdi doğru şifreyi girin. Giriş yapıp yapmadığınızı kontrol edin ve bu fotoğrafın çekilmesine neden olmaz.
  7. Testler başarılı olduysa, DE'nizden (Unity / KDE / ...) oturumunuzu kapatıp oturum açma ekranından yanlış bir şifre girerken aynısını görmelisiniz.


9
Zekice. İki soru: (1) dışında başka bir klasör kullanmak gerekmiyor /tmp, çünkü /tmpher başlattığınızda temizlenir? (2) Gerçek video cihazınızın ne olduğunu nasıl söylersiniz?
Paddy Landau

6
Bu işe yarıyor ama 3 şey eklemek istedim. (1) Yeniden başlatmadan silinmeyen / var / tmp komutunu kullanabiliriz. (2) Bu çözüme dikkatlice uygulayın çünkü “düşük grafik modu” ve / veya “pil durumunu kontrol etme” gibi sonsuz döngüye takılmak mümkün. (3) Sıkışırsanız, yeniden başlatın ve kurtarma moduna geçin (sola kaydırma); "emniyetli grafik modu" işlevini seçiniz ve RW monte edilip edilmediğine bakınız. Şimdi kök kabuğuna bırak; cd ila / etc / pam.d; chmod common-auth, RW'ye, grabpicture betiğini çağırmak için eklenen satırı kaldırmak için nano kullanarak düzenleme; kayıt etmek; çıkış; reboot.
Sri

5
Bilgisayarımın neden takıldığını anladım. Cevaptaki 5.3 ila 5.5 arasındaki adımların common-auth dosyasının hangi satırlara göre ayarlanması gerekir. Common-auth'm ayrıca pam_winbind.so için pam_unix.so ve pam_deny.so olan satırlar arasında başka bir satır daha kullanıyordu. Temel olarak, "başarı" daki auth satırlarının, yakalama komut dosyasını ve pam_deny.so satırını atlaması gerekir.
Sri

Aynı kavramı denemeye çalışıyorum ama yukarıda belirtilen cevap işe yaramazsa düşük grafik hatası alır, ne yanlış bir görüntü için ne görüntü ne de hata mesajı alır. .. Sonra ne yapacağız. (gertvdijk)
SachiN

1
şimdi kullanımdan kaldırılan ffmpeg yerine avconv veya opencv kullanacak şekilde güncelleştirilmelidir
RobotHumans
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.