W każdym zdrowym systemie, chyba że skonfigurowałeś chrooty z ich własnym /dev
, wszystkie pliki urządzeń są poniżej /dev
. Tylko root może tworzyć pliki urządzeń, więc nie musisz się martwić, że złośliwi użytkownicy utworzą pliki urządzeń w innym miejscu.
Więc wszystko, co musisz zrobić, to zlokalizować pliki, /dev
które odnoszą się do tego samego urządzenia, które Cię interesuje.
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
Prawdopodobnie pokaże to tylko /dev/video0
. Zwykle dla każdego urządzenia jest jeden plik urządzenia i możliwe są do niego dodatkowe dowiązania symboliczne.
Zatem praktyczna odpowiedź na twoje pytanie jest prosta. Wystarczy sprawdzić, jakie procesy mają otwarty plik urządzenia.
fuser /dev/video0
Jeśli chcesz monitorować dostęp (tzn. Przechwytywać procesy, które mogą otworzyć plik urządzenia w dowolnym momencie), użyj jednej z metod monitorowania dostępu do plików w systemie Linux na plikach urządzenia: skonfiguruj zegarek (i sprawdź, jakie procesy już mają urządzenie) plik (i) otwarte)
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
lub skonfiguruj regułę audytu, która będzie rejestrować dostęp do dzienników systemowych (zwykle /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
(ifuser
) domyślnie nie robi tego, czego potrzebujesz.