내 웹캠이 사용되고 있는지 어떻게 알 수 있나요?

내 웹캠이 사용되고 있는지 어떻게 알 수 있나요?

내 웹캠이 사용되고 있는지 알려주는 명령은 무엇입니까?

lsof /dev/video0부족한. 메이저 및 마이너 번호가 81과 0인 모든 블록 장치를 모니터링해야 합니다.

답변1

커널이 모듈을 사용하는 경우(아마도) 프로그램이 웹캠에 액세스하고 있는지 확인하는 한 가지 방법은 모듈의 사용 횟수를 확인하는 것입니다.

$ lsmod | grep uvcvideo
uvcvideo               90112  0

세 번째 필드의 0은 uvcvideo제어되는 웹캠 에 대해 lsmod런타임에 열려 있는 장치가 없음을 나타냅니다. 물론 어떤 모듈이 웹캠을 담당하는지 정확히 알아야 하지만 확인하기 쉽고 Cheese와 같은 프로그램을 실행할 때 출력 변경을 볼 수 있습니다.

엄밀히 말하면 양수는 이미지가 캡처되고 있다는 의미가 아니라 장치가 켜져 있다는 의미일 뿐입니다.

답변2

일반적인 시스템에서는 자체 chroot 설정을 사용하지 않는 한 /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 /dev/video0 &
sleep 1; fuser /dev/video0   # check for processes that have already opened the device

답변3

당신이 정말로 원하는 것은 웹캠이사용하고 싶지 않을 때는 사용되지 않습니다., 가장 쉬운 해결책은 필요하지 않을 때 간단히 연결을 끊는 것입니다(외부인 경우). 또는 웹캠을 덮으십시오(테이프만 있으면 됩니다).

물리학 기반 방법은 소프트웨어 방법보다 훨씬 안전합니다.

관련 정보