Trên bất kỳ hệ thống lành mạnh nào, trừ khi bạn đã thiết lập chroots bằng chính chúng /dev
, tất cả các tệp thiết bị đều nằm dưới /dev
. Chỉ root mới có thể tạo tệp thiết bị, vì vậy bạn không cần lo lắng về việc người dùng độc hại tạo tệp thiết bị ở nơi khác.
Vì vậy, tất cả những gì bạn cần làm là xác định vị trí các tệp trong /dev
đó đề cập đến cùng một thiết bị như thiết bị bạn quan tâm.
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
Có khả năng điều này sẽ chỉ hiển thị /dev/video0
. Thông thường, có một tệp thiết bị duy nhất cho mỗi thiết bị và có thể có các liên kết tượng trưng bổ sung cho nó.
Do đó, câu trả lời thực tế cho câu hỏi của bạn là đơn giản. Chỉ cần kiểm tra những quá trình có tập tin thiết bị mở.
fuser /dev/video0
Nếu bạn muốn giám sát truy cập (tức là bắt các quy trình có thể mở tệp thiết bị bất cứ lúc nào), hãy sử dụng một trong các phương pháp giám sát truy cập tệp của Linux trên (các) tệp thiết bị: thiết lập đồng hồ (và kiểm tra xem các quy trình nào đã có thiết bị (các) tập tin mở)
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
hoặc thiết lập quy tắc kiểm toán sẽ ghi nhật ký truy cập trong nhật ký hệ thống (thông thường /var/log/audit/audit.log
)
auditctl -w path=/dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
lsof
(vàfuser
) không mặc định làm những gì bạn cần.