Sur n'importe quel système sain, à moins que vous n'ayez configuré des chroots avec leurs propres /dev
, tous les fichiers de périphérique sont sous /dev
. Seul root peut créer des fichiers de périphérique, vous n'avez donc pas à vous soucier de la création d'utilisateurs de fichiers de périphérique ailleurs.
Il vous suffit donc de localiser les fichiers /dev
qui se réfèrent au même appareil que celui qui vous intéresse.
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
Il est probable que cela ne s'affiche que /dev/video0
. Habituellement, il existe un seul fichier de périphérique pour chaque périphérique, et il existe éventuellement des liens symboliques supplémentaires vers celui-ci.
Ainsi, la réponse pratique à votre question est la plus simple. Vérifiez simplement quels processus ont ouvert le fichier du périphérique.
fuser /dev/video0
Si vous souhaitez surveiller les accès (c'est-à-dire intercepter les processus qui peuvent ouvrir le fichier de périphérique à tout moment), utilisez l'une des méthodes de surveillance d'accès aux fichiers de Linux sur le ou les fichiers de périphérique: configurez une surveillance (et vérifiez quels processus ont déjà le périphérique fichier (s) ouvert (s))
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
ou configurer une règle d'audit qui enregistrera les accès dans les journaux système (généralement /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
(etfuser
) ne fait pas par défaut ce dont vous avez besoin.