大容量記憶装置以外の USB ポートで USB デバイスタイプの指定を無効にします。

大容量記憶装置以外の USB ポートで USB デバイスタイプの指定を無効にします。

回答を検索しましたが、この操作に対する正確な解決策が見つかりませんでした。

私はLinuxを初めて使用しますが、学習したいと思い、指定されたUSBポートに接続されているフラッシュドライブを除くすべてのUSBデバイスタイプを無効にする方法を知りたいです。 udevの一致ルールを作成する方法を知っていますが、udevadmイベントで指定されたUSBポートをブロックするスクリプトの実際の例が見つかりません。

まず、/etc/udev/rules.d/96-myusb.rulesUSBデバイスの種類を一致させるルールを作成しました。

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を使用してこれを行う方法を理解するのに役立ちます。

おすすめ記事