ในระบบมีเหตุผลใด ๆ จนกว่าคุณจะมีการตั้งค่า chroots กับของตัวเอง/dev
, /dev
แฟ้มอุปกรณ์ทั้งหมดอยู่ภายใต้ มีเพียง root เท่านั้นที่สามารถสร้างไฟล์อุปกรณ์ได้ดังนั้นคุณไม่ต้องกังวลกับผู้ใช้ที่ประสงค์ร้ายที่สร้างไฟล์อุปกรณ์ที่อื่น
ดังนั้นสิ่งที่คุณต้องทำคือค้นหาไฟล์ภายใต้/dev
ที่อ้างถึงอุปกรณ์เดียวกันกับไฟล์ที่คุณสนใจ
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
/dev/video0
มันเป็นไปได้ว่าจะแสดงเฉพาะ โดยปกติจะมีไฟล์อุปกรณ์หนึ่งไฟล์สำหรับแต่ละอุปกรณ์และอาจมีลิงก์สัญลักษณ์เพิ่มเติมให้
ดังนั้นคำตอบที่เป็นประโยชน์สำหรับคำถามของคุณคือคำตอบที่ง่าย เพียงตรวจสอบว่ากระบวนการใดเปิดไฟล์อุปกรณ์
fuser /dev/video0
หากคุณต้องการตรวจสอบการเข้าถึง (เช่นกระบวนการจับที่อาจเปิดไฟล์อุปกรณ์ได้ตลอดเวลา) ให้ใช้วิธีการตรวจสอบการเข้าถึงไฟล์ของ Linux บนไฟล์อุปกรณ์: ตั้งค่านาฬิกา (และตรวจสอบว่ากระบวนการใดมีอุปกรณ์อยู่แล้ว) ไฟล์เปิดอยู่
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
หรือตั้งค่ากฎการตรวจสอบซึ่งจะบันทึกการเข้าถึงในบันทึกของระบบ (โดยทั่วไป/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
(และfuser
) โดยค่าเริ่มต้นจะไม่ทำสิ่งที่คุณต้องการ