웹캠 사용 여부를 알 수있는 명령은 무엇입니까?
lsof /dev/video0
충분하지 않습니다. 주 번호와 부 번호 81과 0을 가진 모든 블록 장치를 모니터링해야합니다.
답변
커널이 모듈을 사용하는 경우 (아마도) 프로그램이 웹캠에 액세스하고 있는지 확인하는 한 가지 방법은 모듈의 사용 횟수를 확인하는 것입니다.
$ lsmod | grep uvcvideo
uvcvideo 90112 0
세 번째 필드의 0은 uvcvideo
제어 된 웹캠 ( lsmod
실행시)에 열려있는 장치가 없음을 나타냅니다 . 물론 웹캠을 담당하는 모듈을 정확히 알아야합니다. 그러나 쉽게 확인할 수 있습니다. Cheese와 같은 프로그램을 실행하는 동안 출력이 변경되는 것을 볼 수 있습니다.
엄밀히 말하면 양의 카운트는 무언가가 장치를 연 것을 의미한다는 것만으로 이미지가 캡처되는 것은 아닙니다.
답변
실제로 원하지 않는 경우 웹캠 을 사용하지 않는 것이 가장 간단한 방법 이라고 가정 할 때 가장 간단한 해결책은 필요하지 않은 경우 웹캠 을 연결 해제하는 것입니다 (외부인 경우). 또는 웹캠을 덮습니다 (덕트 테이프 조각 만 작동).
물리 기반 접근 방식은 소프트웨어 접근 방식보다 훨씬 안전합니다.
답변
정상적인 시스템에서 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 path=/dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device