Em qualquer sistema são, a menos que você tenha configurado chroots com eles próprios /dev
, todos os arquivos do dispositivo estão abaixo /dev
. Somente o root pode criar arquivos de dispositivo, assim você não precisa se preocupar com usuários mal-intencionados criando arquivos de dispositivo em outro lugar.
Portanto, tudo o que você precisa fazer é localizar os arquivos /dev
que se referem ao mesmo dispositivo que você está interessado.
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
É provável que isso apareça apenas /dev/video0
. Geralmente, há um único arquivo de dispositivo para cada dispositivo e possivelmente há links simbólicos adicionais para ele.
Portanto, a resposta prática à sua pergunta é simples. Basta verificar quais processos têm o arquivo do dispositivo aberto.
fuser /dev/video0
Se você deseja monitorar acessos (por exemplo, pegar processos que podem abrir o arquivo do dispositivo a qualquer momento), use um dos métodos de monitoramento de acesso a arquivos do Linux no (s) arquivo (s) do dispositivo: configure um relógio (e verifique quais processos já possuem o dispositivo arquivo (s) aberto)
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
ou configurar uma regra de auditoria que registrará acessos nos logs do sistema (normalmente /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
) por padrão não faz o que você precisa.