0008 — Usbguard

Купил на днях себе монитор — ViewSonic VP3268-4K. Открыл коробку, а у него сзади очень удобная панель для подключения USB-устройств. Лично для меня важная штука, потому что системник стоит не в конуре под столом, а рядом с ним. Про дизайн столов мне таки тоже есть что сказать, но потом.

Подключил я, значит, идущий в комплекте шнур. Воткнул в гнездо кабель WEB-камеры. Не работает. Открыл Zoom, а он не видит её. Ну, бывает. У меня иногда клавиатура отваливается, или камера, или ещё какая магия происходит (на самом деле не магия, а программные и аппаратные ошибки, разработчики всего этого не святые).

Выдернул, вставил. Не работает!

Потом клавиатура отказала. Гнездо что ли сжёг? Вставил в другое. Не работает! Монитор бракованный? Воткнул напрямую. Не работает. Может, дело в клавиатуре? Взял из запасов старую, надёжную. Не-а.

С помощью мыши перезагрузил компьютер, зашёл в EFI — клавиатуры обе рабочие, гнёзда тоже. Проблема 100% в софте, а не железе. Оказывается, в Debian сработала программа USBGuard. По идее она должна защищать меня от всяких левых USB-устройств, а не делать мою жизнь сложнее.

По какой-то причине все USB-устройства на моём компьютере попали в список запрещённых. В выводе dmegs при этом можно увидеть вот такое:

Device is not authorized for usage

Чтобы решить проблему, необходимо:

  1. Получить список заблокированных USB-устройств:

    usbguard list-devices --blocked
    
  2. Рядом с каждым устройством будет его идентификатор, с которым работает USBGuard. Выполните команду разблокировки:

    usbguard allow-device --permanent <ID устройства>
    

    Чтобы разблокировать все имеющиеся устройства, выполните скрипт со страницы в Debian Wiki:

    for d in /sys/bus/usb/devices/*/authorized; do echo 1 > $d; done
    
  3. Сгенерируйте новые постоянные правила, разрешающие использование этих устройств:

    usbguard generate-policy | sudo diff - /etc/usbguard/rules.conf