Tôi có thể làm cho webcam chụp ảnh khi nhập mật khẩu không chính xác không?


72

Tôi đang sử dụng máy tính xách tay. Tôi đã suy nghĩ để có một hỗ trợ trong máy Ubuntu của tôi. Khi nhập mật khẩu không chính xác, một bức ảnh được chụp sau đó cho thấy ai đang cố gắng giành quyền truy cập.

Tôi đã tìm kiếm xung quanh và điều duy nhất tôi tìm thấy là thứ để làm điều này trên máy Mac. Có thể viết một kịch bản cho Ubuntu để làm như vậy.

Nếu có thể thì kịch bản hoặc Phần mềm để thực hiện điều này là gì.


Một hình ảnh trên màn hình đăng nhập lightdm hoặc một cái gì đó giống như một trình bảo vệ màn hình được bảo vệ bằng mật khẩu (Về cơ bản trước khi đăng nhập hoặc sau khi đăng nhập)?
Luis Alvarado

Có hình ảnh trên màn hình đăng nhập lightdm khi người dùng đặt mật khẩu không chính xác.
twister_void

3
Giải pháp "đúng" thông qua PAM trên Ubuntuforums . Được rồi tôi sẽ đăng bài này như một câu trả lời. :)
gertvdijk

Ngoài ra, cài đặt ứng dụng của bên thứ ba như Prey . Nó không làm đúng như bạn yêu cầu, nhưng nó chuyên bảo vệ và phục hồi máy tính của bạn trong trường hợp mất cắp.
Paddy Landau

Đừng quên đề cập đến việc sử dụng webcam để chụp ảnh trong trường hợp bạn đang ở trong một môi trường nhạy cảm / được bảo vệ.
pl1nk

Câu trả lời:


59

Dựa trên bài đăng này trên Ubuntuforums của BkkBonanza .

Đây là một cách tiếp cận sử dụng PAM và sẽ hoạt động cho tất cả các lần đăng nhập thất bại. Sử dụng SSH, thiết bị đầu cuối ảo hoặc thông qua màn hình đăng nhập thông thường, điều đó không thành vấn đề vì cuối cùng mọi thứ đều được xử lý bởi PAM.

  1. Cài đặt ffmpegCài đặt ffmpeg , chúng tôi sẽ sử dụng điều này như một cách dòng lệnh để lấy các hình ảnh webcam. Cập nhật : ffmpeg bị xóa khi bạn nâng cấp lên Ubuntu 14.04. Chúng ta có thể sử dụng avconv thay cho ffmpeg trong đoạn script dưới đây. Không cần phải cài đặt bất cứ điều gì riêng biệt.

  2. Tạo một tập lệnh nhỏ ở đâu đó, ví dụ /usr/local/bin/grabpicturevới nội dung sau:

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

    Thay đổi /dev/video0với thiết bị video thực tế của webcam của bạn và chọn đường dẫn lưu ảnh - tôi chỉ chọn /tmp. Trong phiên bản mới hơn của Ubuntu, sử dụng avconvthay vì ffmpeg( sudo apt-get install libav-tools).

  3. Làm cho nó thực thi, ví dụ chmod +x /usr/local/bin/grabpicture.

  4. Kiểm tra nó, bằng cách chỉ gọi nó : /usr/local/bin/grabpicture. Kiểm tra nếu bạn thấy các tập tin xuất hiện trong /tmp/vid....jpg.

  5. Định cấu hình PAM để gọi điều này trên mọi lần thử thất bại.

    Lưu ý: làm điều này một cách cẩn thận - nếu điều này không thành công, bạn sẽ không thể truy cập lại vào hệ thống của mình một cách thường xuyên.

    1. Mở một cửa sổ đầu cuối với quyền truy cập root ( sudo -i) và để nó mở - chỉ trong trường hợp bạn làm hỏng các bước tiếp theo.
    2. Mở /etc/pam.d/common-authtrong trình soạn thảo yêu thích của bạn, ví dụ bằng cách làm gksudo gedit /etc/pam.d/common-auth. Hãy ghi nhớ các bước sau đây theo thứ tự các dòng trong tệp này.
    3. Xác định vị trí dòng bên dưới. Theo mặc định, có một dòng trước một dòng với pam_deny.so. Trên hệ thống 12.04 của tôi, nó trông như thế này:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. Trong dòng này thay đổi success=1để success=2có nó bỏ qua kịch bản của chúng tôi trên succes. Đây là một bước quan trọng.

    5. Ngay bên dưới đó, thêm một cái mới để gọi kịch bản thực tế:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
    6. Lưu và đóng tập tin. Không cần phải khởi động lại bất cứ điều gì.

  6. Kiểm tra nó

    1. Trong cửa sổ terminal mới, với tư cách là người dùng thông thường, hãy thử su -l usernameđăng nhập với tư cách người dùng khác bằng tên người dùng username(dĩ nhiên thay đổi với một người dùng thực tế). Cố tình nhập sai mật khẩu. Kiểm tra nếu kết quả này trong một hình ảnh mới.
    2. Giống như trên, nhưng bây giờ nhập mật khẩu chính xác. Kiểm tra nếu bạn đăng nhập và nó không dẫn đến một bức ảnh được chụp.
  7. Nếu các thử nghiệm đã thành công, bạn có thể đăng xuất khỏi DE (Unity / KDE / ...) và bạn sẽ thấy điều tương tự khi nhập sai mật khẩu từ màn hình đăng nhập.


9
Thật khéo léo. Hai câu hỏi: (1) Bạn không nên sử dụng một thư mục khác /tmp, bởi vì /tmpbị xóa mỗi khi bạn khởi động lại? (2) Làm thế nào để bạn biết thiết bị video thực tế của bạn là gì?
Paddy Landau

6
Điều này hoạt động nhưng tôi muốn thêm 3 điều. (1) Chúng tôi có thể sử dụng / var / tmp mà không bị xóa khi khởi động lại. (2) Hãy cẩn thận với giải pháp này vì có thể bị kẹt trong vòng lặp vô hạn của "chế độ đồ họa thấp" và / hoặc "kiểm tra trạng thái pin", như tôi đã từng. (3) Nếu bạn gặp khó khăn, hãy khởi động lại và vào chế độ phục hồi (nhấn phím trái); chọn "chế độ đồ họa failafe" và xem nếu / được gắn RW; Bây giờ thả xuống vỏ gốc; cd đến /etc/pam.d; chmod common-auth thành RW, chỉnh sửa bằng nano để xóa dòng được thêm vào để gọi tập lệnh snappicture; lưu lại; lối ra; khởi động lại.
Sri

5
Tôi đã tìm ra lý do tại sao PC của tôi bị kẹt. Các bước 5.3 đến 5.5 trong câu trả lời cần được điều chỉnh theo dòng mà tệp chung-auth có. Common-auth của tôi cũng có một dòng khác cho pam_winbind.so giữa các dòng có pam_unix.so và pam_deny.so. Về cơ bản, các dòng auth về "thành công" cần bỏ qua tập lệnh chụp cũng như dòng pam_deny.so.
Sri

Tôi cũng đang cố gắng để cùng một khái niệm nhưng câu trả lời được đề cập ở trên không hoạt động khiến tôi bị lỗi đồ họa thấp, không có bất kỳ hình ảnh cũng như bất kỳ thông báo lỗi nào cho nỗ lực sai. .. Phải làm gì tiếp theo. (gertvdijk)
SachiN

1
có lẽ nên được cập nhật để sử dụng avconv hoặc opencv trái ngược với ffmpeg hiện không dùng nữa
RobotHumans
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.