Как отключить веб-камеру?

Вопрос или проблема

У меня есть встроенная веб-камера в ноутбуке. Я знаю, что она работает и что Ubuntu ее распознал, потому что при установке спросил, хочу ли я сделать фотографию для какого-то изображения, связанного с моим аккаунтом. Когда я смотрю в системные настройки, я не вижу веб-камеры в разделе оборудования. Я хотел бы отключить веб-камеру, как это можно сделать в Windows, но так как я не могу найти ее в своем разделе оборудования, как я могу ее отключить? Я даже не могу отключить ее, так как она встроена в монитор. Я смотрю не в том месте? Я использую 12.04

Камеры управляются модулем ядра uvcvideo.

Вы можете отключить камеру до перезагрузки, открыв терминал и введя sudo modprobe -r uvcvideo. У вас попросят пароль, и после его ввода, если в терминале не будет показано ошибок, ваша веб-камера должна быть отключена.

Если вы получили сообщение об ошибке: modprobe: FATAL: Module uvcvideo is in use. после попытки удалить модуль uvcvideo, вы можете попробовать принудительно удалить его следующим образом: sudo rmmod -f uvcvideo (спасибо thiagowfx)

Чтобы снова включить вашу веб-камеру, введите sudo modprobe uvcvideo в терминале.

Если вы хотите, чтобы камера была отключена при перезагрузке, нажмите ALT+F2 и вставьте следующую команду:

gksu gedit /etc/modprobe.d/blacklist.conf

У вас попросят пароль. После его ввода откроется текстовый файл. Вставьте в конец текстового файла на новой строке:

blacklist uvcvideo

Затем сохраните файл и выйдите. В следующий раз, когда вы запустите Ubuntu, веб-камера должна быть отключена.

Как отключить все веб-камеры:

  1. Запустите (для ubuntu до 18.04):
gksu gedit /etc/modprobe.d/blacklist.conf

Или запустите (для ubuntu 18.04 и позднее):

gedit admin:///etc/modprobe.d/blacklist.conf
  1. Затем добавьте…
blacklist uvcvideo

…внизу. Сохраните файл и закройте текстовый редактор.

Как отключить одну веб-камеру:

  1. Найдите вашу веб-камеру с помощью lsusb. Мой вывод:
Bus 002 Device 002: ID 0bda:0328 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 0bda:568c Realtek Semiconductor Corp.
Bus 001 Device 042: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Если не ясно, какое устройство — это ваша веб-камера, вы можете попробовать lsusb -t и поискать Class=Video или Driver=uvcvideo или что-то похожее, чтобы угадать, что это. Мой вывод:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 2: Dev 42, If 2, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 42, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 42, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 5: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 5: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
  1. Далее найдите ID производителя и ID устройства из вывода lsusb вокруг двоеточия:
Bus 001 Device 002: ID 0bda:568c Realtek Semiconductor Corp.

Так что в моем случае ID производителя 0bda, а ID продукта 568c.

  1. Далее перейдите в:
cd /sys/bus/usb/devices/
  1. Чтобы найти правильный каталог, выполните grep там с ID продукта и, если вы получите несколько результатов, то также с ID производителя:
grep 568c */idProduct

вернул:

1-5/idProduct:568c

и

grep 0bda */idVendor

вернул:

1-5/idVendor:0bda
2-4/idVendor:0bda

В моем случае мне нужно 1-5.

  1. cd в каталог из предыдущего шага.

  2. Файл bConfigurationValue в этом каталоге должен содержать 0, чтобы отключить устройство, или 1, чтобы его включить. Но этот файл принадлежит root, поэтому, чтобы изменить его (изменить 0 на 1, чтобы включить) …

echo 0 | sudo tee bConfigurationValue

…чтобы отключить. Вы можете проверить камеру, и она будет отключена.

  1. Это еще не постоянно. Перезагрузка вернет настройки обратно, как было раньше. Чтобы сделать это постоянным:
echo 0 | sudo tee /sys/bus/usb/devices/1-5/bConfigurationValue

(где 1-5 — это каталог, который мы использовали, и используйте 1, чтобы включить)

Что насчет заклеивания ее черной лентой? Возьмите черную ленту и заклейте веб-камеру. Веб-камера успешно отключена! В отличие от ответов выше, этот метод также работает против атак вредоносных программ, которые пытаются включить вашу веб-камеру!

Мне повезло в BIOS моего ноутбука (Dell XPS 15 9570), где была опция отключения встроенной веб-камеры и микрофона.

Кратко Выполните следующую команду: echo 1 | sudo tee $(readlink -f $(readlink -f /sys/class/video4linux/video0/device)/../port)/disable

У меня была похожая проблема на Arch Linux, и мне удалось ее решить благодаря ответу Роберта Зимера на Unix StackExchange. Поскольку используются только стандартные команды и интерфейсы, это также должно работать для Ubuntu.

Вы должны идентифицировать устройство вашей веб-камеры с помощью lsusb, как предложил Rinzwind. Если веб-камера в списке, вы должны уметь отключить камеру, отключив USB-порт, к которому подключена камера. Я предпочитаю это решение ответу Rinzwind, так как оно также скрывает отключенную веб-камеру от системы (например, вывод lsusb).

Сначала нам нужно найти системный путь, который представляет USB-порт. Все камеры системы представлены в дереве /sys/class/video4linux. Оттуда мы можем получить путь USB-порта, разрешив две символьные ссылки. Вот пример для первой камеры системы (video0):

$ readlink -f $(readlink -f /sys/class/video4linux/video0/device)/../port

Это возвращает системный путь USB-порта, к которому подключена веб-камера. В моем случае это:

/sys/devices/pci0000:00/0000:00:14.0/usb3/3-0:1.0/usb3-port8

Теперь мы можем просто включить и отключить USB-порт с помощью следующих команд:

$ USBPATH=$(readlink -f $(readlink -f /sys/class/video4linux/video0/device)/../port)
$ echo 1 | sudo tee $USBPATH/disable # отключить порт веб-камеры
$ echo 0 | sudo tee $USBPATH/disable # снова включить порт

Изменения будут потеряны после перезагрузки, но вы можете добавить команду отключения в простой скрипт и запустить его при загрузке. Я использую следующий сервис systemd:

[Unit]
Description=Disable the built-in camera.

[Service]
Type=oneshot
Environment="USBPATH=/sys/devices/pci0000:00/0000:00:14.0/usb3/3-0:1.0/usb3-port8"
RemainAfterExit=true
ExecStart=/bin/bash -c "echo 1 > $USBPATH/disable"
ExecStop=/bin/bash -c "echo 0 > $USBPATH/disable" 

[Install]
WantedBy=default.target

Обратите внимание, что клавиша fn не может быть использована для повторного включения камеры, если она была отключена с помощью команды выше. Необходимо снова включить ее через системное дерево.

.

Ответ или решение

Вопрос об отключении веб-камеры на Ubuntu 12.04 часто возникает среди пользователей, стремящихся защитить свою конфиденциальность или устранить технические проблемы. Разберем этот процесс более детально, основываясь на системной архитектуре Linux и особенностях работы операционной системы Ubuntu.

Теория (Theory):

Веб-камеры, встраиваемые в большинство современных ноутбуков, управляются при помощи модуля ядра uvcvideo. Когда Ubuntu обнаруживает и идентифицирует вашу камеру, этот модуль загружается, позволяя системе использовать аппаратное обеспечение для захвата и передачи видео. Однако, если требуется отключить камеру, есть несколько методов, которые могут быть использованы для снятия этого модуля или блокировки его загрузки.

Пример (Example):

Вы можете временно отключить модуль uvcvideo, что также приведет к отключению камеры. Откройте терминал и выполните команду:

sudo modprobe -r uvcvideo

Эта команда удаляет модуль из ядра, что делает камеру недоступной для системных приложений. Если вы сталкиваетесь с ошибкой, например, modprobe: FATAL: Module uvcvideo is in use, пробуйте принудительное удаление:

sudo rmmod -f uvcvideo

Для повторного включения камеры после временного отключения используйте команду:

sudo modprobe uvcvideo

Если требуется отключать камеру при каждом запуске системы, необходимо будет внести изменения в файл blacklist.conf, который находится по пути /etc/modprobe.d/. Правка всех файлов настроек должна выполняться от имени суперпользователя:

gksu gedit /etc/modprobe.d/blacklist.conf

После этого в конец файла добавьте строку:

blacklist uvcvideo

Сохраните файл и закройте редактор. Теперь при следующем включении системы модуль uvcvideo не будет загружаться автоматически, и камера останется отключенной.

Применение (Application):

Если необходимо временное отключение одной определенной камеры, а не всех системных видеоустройств, вам потребуется определить конкретное устройство через команду lsusb. Эта команда отобразит список подключенных USB-устройств:

lsusb

Вывод, подобный Bus 001 Device 002: ID 0bda:568c Realtek Semiconductor Corp., поможет вам определить ID-устройства, чтобы затем найти его в файловой системе и управлять его состоянием на аппаратном уровне.

Например, зная IDs, выполните:

cd /sys/bus/usb/devices/
grep 568c */idProduct

Затем перейдите в обнаруженную директорию, соответствующую вашей камере:

cd 1-5

Измените значение в файле bConfigurationValue на 0 для отключения:

echo 0 | sudo tee bConfigurationValue

Чтобы это изменение сохранялось между перезагрузками, можно создать простой системный скрипт, который выполняется при загрузке системы.

Дополнительно, механическое решение проблемы — наклейка черной ленты на объектив камеры, что, однако, не защитит от записи звука через встроенные микрофоны. Некоторые пользователи также находят опцию отключения камеры прямо в BIOS, что обеспечивает через аппаратные средства надежный метод её отключения.

Обратитесь к системам управления устройствами вашего ноутбука, чтобы убедиться, что все ваши действия соответствуют политике безопасности, принятой в вашей организации, учитывают все аппаратные особенности вашего устройства и предоставляют необходимый уровень защиты.

Оцените материал
Добавить комментарий

Капча загружается...