Estoy usando el RPI para crear un programa, pero necesito deshabilitar los puertos USB para que el usuario final no pueda enchufar un teclado o mouse y meterse con el dispositivo.
¿Es esto posible? De ser así, ¿cómo se hace?
Estoy usando el RPI para crear un programa, pero necesito deshabilitar los puertos USB para que el usuario final no pueda enchufar un teclado o mouse y meterse con el dispositivo.
¿Es esto posible? De ser así, ¿cómo se hace?
Respuestas:
Puede encontrar suerte con este comando:
echo 0x0> / sys / devices / platform / bcm2708_usb / buspower
Esto parece deshabilitar los puertos USB. Sin embargo, no lo he probado.
Cada controlador de host USB en Linux expone una configuración llamada authorized_default
, que controla el estado de cualquier dispositivo conectado nuevo. Establecerlo en 0 desactiva todos los dispositivos nuevos de forma predeterminada:
for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done
Una forma recomendada de ejecutar este script consiste en usar udev
reglas. De esta manera, está seguro de que el script se ejecuta en el momento correcto, cuando el controlador del controlador del host ya está cargado, pero ninguno de los dispositivos ha sido autorizado. Vea esta pregunta para ver un ejemplo de este enfoque.
Una cosa que debe entender es que los bloqueos de software solo son efectivos siempre que el usuario final no pueda desconectar la tarjeta SD y eliminar las protecciones que ha establecido.
Realmente no sé si es directamente posible ... ¿Por qué no bloquear físicamente la capacidad de los usuarios para hacerlo? Ya sea colocándolo donde no pueden llegar, llenando los puertos o colocando un mecanismo de bloqueo sobre él / alrededor.
sudo sh -c "echo 0 > /sys/devices/platform/soc/3f980000.usb/buspower"
Deshabilitará los puertos USB pero también el puerto LAN.
sudo sh -c "echo 1 > /sys/devices/platform/soc/3f980000.usb/buspower"
Los reativa.