Estou usando o RPI para criar um programa, mas preciso desativar as portas USB para que o usuário final não possa conectar um teclado ou mouse e mexer no dispositivo.
Isso é possível? Em caso afirmativo, como é feito?
Super-colar as portas USB também funciona. Isso é o que os bancos costumavam fazer. :-P
Gerben 15/07/2013
O que você tem medo que o usuário possa fazer?
21413 Zurechtweiser
@Gerben seu link explicando como desativar o mouse / teclado no X Window System, não o hardware de mouse / teclado USB.
Gurcanozturk
Você está usando o X ou apenas o console? Por padrão, o console é protegido por senha. Você poderia explicar um pouco mais sobre a situação para a qual deseja usá-lo?
As portas usb ainda estarão disponíveis durante a inicialização, portanto, se o usuário puder reiniciar o PI, esta solução não funcionará.
pim
2
Cada controlador host USB no Linux expõe uma configuração chamada authorized_default, que controla o estado de qualquer novo dispositivo conectado. Definir como 0 torna todos os novos dispositivos desativados por padrão:
for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done
Uma maneira recomendada de executar este script consiste em usar udevregras. Dessa forma, você tem certeza de que o script é executado no momento certo, quando o driver do controlador host já está carregado, mas nenhum dos dispositivos ainda foi autorizado. Veja esta pergunta para um exemplo dessa abordagem.
Uma coisa que você deve entender é que os bloqueios de software são eficazes apenas desde que o usuário final não possa desconectar o cartão SD e remover as proteções que você colocou no lugar.
Realmente não sei se é diretamente possível ... Por que não bloquear fisicamente a capacidade dos usuários de fazer isso? Colocando-o onde eles não podem chegar, preenchendo as portas ou colocando um mecanismo de travamento sobre / em torno dele.
Você não conhece o ambiente em que o dispositivo residirá. Ele pode estar localizado em um local onde você não tem controle sobre quem tem acesso, como em um rack AV em algum lugar de um local remoto a quilômetros de distância. Você pode trancá-lo em um gabinete, mas geralmente a equipe ou a gerência no local ainda terão acesso a esses gabinetes. É mais fácil bloquear um nível no software para desencorajar as pessoas que estão brincando.
ScottN 24/03
@ ScottN: Claro, eu acho. Preencher as portas com epóxi resolveria esse problema, mas realmente ... se alguém tiver esse nível de acesso físico ao dispositivo, todas as outras considerações de segurança serão mais ou menos discutíveis.
Jacobm001
Ah, preencher as portas com epóxi é realmente um último recurso e esqueça de usar o dispositivo se for devolvido para RMA ou algo assim. Meu ponto principal era desencorajar alguém que brincava com ele como uma equipe que conecta um teclado e inicia o YouTube e assiste a vídeos quando esse dispositivo deve ser usado para fazer sinalização ou algo assim.
ScottN 24/03
1
sudo sh -c "echo 0 > /sys/devices/platform/soc/3f980000.usb/buspower"
Desabilitará as portas USB, mas também a porta LAN.
sudo sh -c "echo 1 > /sys/devices/platform/soc/3f980000.usb/buspower"
use o SELinux, procure on-line e você terá muitos recursos. Foi desenvolvido para esse fim. Você pode desativar / ativar portas e outros recursos do seu sistema Linux.
Respostas:
Você pode encontrar sorte com este comando:
eco 0x0> / sys / devices / platform / bcm2708_usb / buspower
Isso parece desativar as portas USB. Eu não testei embora.
fonte
Cada controlador host USB no Linux expõe uma configuração chamada
authorized_default
, que controla o estado de qualquer novo dispositivo conectado. Definir como 0 torna todos os novos dispositivos desativados por padrão:Uma maneira recomendada de executar este script consiste em usar
udev
regras. Dessa forma, você tem certeza de que o script é executado no momento certo, quando o driver do controlador host já está carregado, mas nenhum dos dispositivos ainda foi autorizado. Veja esta pergunta para um exemplo dessa abordagem.Uma coisa que você deve entender é que os bloqueios de software são eficazes apenas desde que o usuário final não possa desconectar o cartão SD e remover as proteções que você colocou no lugar.
fonte
Realmente não sei se é diretamente possível ... Por que não bloquear fisicamente a capacidade dos usuários de fazer isso? Colocando-o onde eles não podem chegar, preenchendo as portas ou colocando um mecanismo de travamento sobre / em torno dele.
fonte
Desabilitará as portas USB, mas também a porta LAN.
Reativa-os.
fonte
use o SELinux, procure on-line e você terá muitos recursos. Foi desenvolvido para esse fim. Você pode desativar / ativar portas e outros recursos do seu sistema Linux.
fonte