보안상의 이유로 특정 USB 포트에서 입력 장치가 작동하지 않도록 하고 싶습니다. 이 포트에서는 비입력 기능(예: 대용량 저장 장치 또는 ttyUSB)을 사용할 수 있어야 합니다. 입력 장치는 다른 USB 포트에서 계속 작동 중이어야 합니다.
"사용할 수 없음"은 예를 들어 /dev/input/eventX
해당 장치가 생성되지 않았고 일반 프레임워크(X11, Linux 콘솔)가 장치의 입력을 허용하지 않음을 의미합니다.
udev 규칙을 통해 USB 포트를 식별할 수 있습니다.
DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7.1/*"
하지만 비활성화하는 방법을 모르겠습니다.
고대 udev 버전이 지원되었지만 OPTIONS+="ignore_device"
이 옵션이 사라졌습니다.
어떻게 해야 하나요?
답변1
가능한 각 입력 장치 유형에 대해 다음과 같은 규칙을 작성해야 합니다.
- ID_INPUT_KEYBOARD
- ID_INPUT_KEY
- ID_INPUT_MOUSE
- ID_INPUT_터치패드
- ID_input_tablet
- ID_INPUT_JOYSTICK
규칙에서 해당 이름의 환경 변수가 null이 아닌지 테스트합니다. 예를 들어 ?*
하나 이상의 문자가 있는 경우에만 일치하는 glob 패턴과 일치시킵니다. 예를 들어:
ENV{ID_INPUT_KEYBOARD}=="?*"
각 규칙에서 일치하는 경우 authorized
장치의 속성을 0으로 설정합니다. 예를 들면 다음과 같습니다.
ATTR{authorized}="0"
향후 규칙에 의해 재정의되지 않도록 =
다음으로 바꾸는 것이 좋습니다 . :=
이는 일반적인 규칙을 제공합니다.
ACTION=="add", DEVPATH=="...", ENV{ID_INPUT_KEYBOARD}=="?*", ATTR{authorized}:="0"
바라보다이 프레젠테이션저자: 애드리안 크렌쇼