Su qualsiasi sistema sano, a meno che tu non abbia impostato i chroot con i propri /dev
, tutti i file del dispositivo sono sotto /dev
. Solo root può creare file di dispositivi, quindi non devi preoccuparti che utenti malintenzionati creino file di dispositivi altrove.
Quindi tutto ciò che devi fare è individuare i file /dev
che si riferiscono allo stesso dispositivo di quello a cui sei interessato.
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
È probabile che questo mostrerà solo /dev/video0
. Di solito, esiste un singolo file del dispositivo per ogni dispositivo e probabilmente ci sono collegamenti simbolici aggiuntivi ad esso.
Quindi la risposta pratica alla tua domanda è quella semplice. Controlla quali processi hanno il file del dispositivo aperto.
fuser /dev/video0
Se si desidera monitorare gli accessi (ovvero i processi di cattura che possono aprire il file del dispositivo in qualsiasi momento), utilizzare uno dei metodi di monitoraggio dell'accesso ai file Linux sui file del dispositivo: impostare un orologio (e verificare quali processi hanno già il dispositivo file aperti)
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
o impostare una regola di controllo che registrerà gli accessi nei registri di sistema (in genere /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
(efuser
) non fa di default ciò di cui hai bisogno.