답변을 검색했지만 이 작업에 대한 정확한 해결책을 찾을 수 없습니다.
저는 Linux를 처음 사용하지만 배우고 싶고 지정된 USB 포트에 연결된 플래시 드라이브를 제외한 모든 USB 장치 유형을 비활성화하는 방법을 알고 싶습니다. udev에 대한 일치 규칙을 작성하는 방법을 알고 있지만 udevadm
이벤트에서 지정된 USB 포트를 차단하는 스크립트의 실제 예를 찾을 수 없습니다 .
먼저 /etc/udev/rules.d/96-myusb.rules
USB 장치 유형을 일치시키는 규칙을 만들었습니다.
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_TYPE}!="disk", ENV{ID_USB_DRIVER}!="usb-storage",RUN+="/lib/udev/unmount.sh"
내가 틀렸다면 정정해주세요.
그런 다음 지정된 USB 포트에서 일치하지 않는 장치를 차단하기 위해 이전 규칙에 의해 실행될 쉘 스크립트를 작성해야 합니다. 이것이 나에게 문제입니다.
답변1
udev를 사용하여 이 작업을 올바르게 수행하려면 실제로 모든 USB 포트의 콘텐츠를 기본적으로 차단하도록 설정한 다음 장치와 일치하고 원하는 것을 허용하는 규칙을 작성해야 합니다(이 경우 대부분의 포트에서는 MSC 및 MSC만 허용). 특정 포트의 UAS 장치). 이렇게 하지 않으면 장치가 차단되기 전 짧은 시간 동안 시스템에 표시되며 커널 드라이버가 작동하기 시작하므로 처음에 장치를 차단하는 이점이 완전히 무효화될 수 있습니다. 범위를 차단하기 전에 열거 범위를 벗어나기 전에 장치입니다.
스크립트 자체가 진행되는 한 아마도 필요하지 않을 것입니다. 계층 구조에서 udev 규칙과 일치하는 위치에 따라 authorized
특정 작업을 허용하도록 속성을 설정할 수 있어야 합니다 .
아니면, 좀 보세요USB 가드. 이러한 일을 처리하는 전문 서비스입니다. 불행하게도 많은 배포판에 사전 패키지로 제공되지는 않지만 작동 방식을 이해하면 udev를 사용하여 이를 수행하는 방법을 알아내는 데 도움이 될 수 있습니다.