O subsistema no Ubuntu (e todas as distribuições modernas do Linux) que manipula o que fazer com dispositivos que são adicionados ou removidos é chamado de "udev". Permite-lhe declarar regras sobre o que fazer com estes dispositivos.
Se você colocar um arquivo de regras em /etc/udev/rules.d/
começando com 99-
, ele será avaliado após todos os outros arquivos de regras, sobrescrevendo quaisquer configurações feitas neles. Isso é o que você quer. Portanto:
-
Crie um arquivo
/etc/udev/rules.d/99-lockdown-usb.rules
(escolha o que você preferir se não gostar delockdown-usb
) com o seguinte conteúdo:ACTION=="add", SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", ATTR{authorized_default}="0"
Esta regra corresponde a qualquer dispositivo "adicionado" pertencente ao subsistema "usb" da classe de dispositivo USB "09" (dispositivos host USB) e define o atributo "authorized_default" como 0 (significando "false"). O efeito desse atributo é definir um padrão para o atributo "autorizado" de quaisquer dispositivos USB do cliente descobertos subsequentemente conectados a esse dispositivo host. Dispositivos USB não autorizados aparecem na lista de dispositivos USB e permanecem disfuncionais.
-
Para ativar manualmente um dispositivo USB conectado em um ponto posterior, defina seu valor "autorizado" como 1 por sysfs, e. g .:
sudo tee /sys/bus/usb/devices/2-1/authorized <<< 1
(
2-1
é o caminho do dispositivo USB atribuído pelo kernel neste exemplo. Os nomes dos caminhos podem se tornar mais complicados se os hubs USB estiverem envolvidos. Você pode descobrir o caminho de um dispositivo específico com a ajuda delsusb -t
. )Isso acionará todos os eventos de conexão como normalmente faria, e. g. os dispositivos de armazenamento são exibidos no Nautilus e os teclados aceitam entrada de chave. O importante aqui é que esses arquivos sysfs são normalmente graváveis somente por superusuários , o que você quer.
Se você precisar desautorizar somente dispositivos específicos ou tipos de dispositivos ou excluir dispositivos específicos ou tipos de dispositivos do bloqueio, poderá refinar as regras do udev para considerá-las.
Inspiração tirada de Plug and Prey: dispositivos USB maliciosos , mas com algumas melhorias.