У будь-якій здоровій системі, за винятком випадків, коли ви встановили хрооти з їх власними /dev
, усі файли пристроїв знаходяться в розділі /dev
. Лише корінь може створювати файли пристроїв, тому вам не потрібно турбуватися про зловмисних користувачів, які створюють файли пристроїв в інших місцях.
Тому все, що вам потрібно зробити, - це знайти файли під /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
) за замовчуванням не робить те, що вам потрібно.