Debian(Linux)システムでUSBポートのアクセス許可を制限することは可能ですか?
たとえば :
Linuxカーネルは、新しいデバイスを検出すると、 dev にメッセージを送信します。 udevの仕事は、ユーザーの土地が新しいデバイスにアクセスできるようにすることです。多くのデバイスでは、udevが行う必要があるのは/dev
にエントリを作成することだけです。ブロックデバイスの場合、これによりデバイスをマウントできます。シリアルポートやサウンドポートなどのキャラクターデバイスの場合、これにより専用アプリケーションでデバイスを使用できます。ネットワークインターフェースの場合、udevは名前を設定できます。キーボードの場合、udevは追加のスキャンコードを定義することもあります。 udevがデバイスエントリを作成しない場合、これにより実質的にデバイスが未使用になります。
Udevは rules ;によって制御できます。デフォルトのルールは/lib/udev/udev.d
にあり、管理者は/etc/udev/udev.d
のファイルを介してオーバーライドできます。各udevルールには、VARIABLE==VALUE
の形式の条件があります。これらのルールがすべて満たされている場合、ルールが適用されます。 udevadm info -a -n /dev/…
またはudevadm info -a /sys/…
を実行すると、デバイスに適用される条件を確認できます。
私の知る限り、デバイスを無視する一般的なメカニズムはありません。ネットワークインターフェイス(/dev
の下のデバイスノードを使用しない)でない場合は、アクセス許可を与えないことで、効果的に使用できなくすることができます。
[〜#〜]条件[〜#〜]、MODE = "000"
USBデバイスには 認証メカニズム :authorized
属性が0(false)に設定されている場合、システムはデバイスにアクセスしません。このルールでは、USBストレージデバイス以外のUSBデバイスは使用できません。
ACTION=="add", SUSYSTEMS=="usb", DRIVERS!="usb-storage", ATTR{authorized}="0"
/etc/rc.local
のこのスニペットですべてのUSBホストポートを無効にすることにより、 起動シーケンス後にUSBデバイスを無効にする することもできます。
for x in /sys/bus/usb/devices/usb*; do
echo 0 >"$x/authorized_default"
done
個々のデバイスは、authorized
属性を1に設定するudevルールを介して(または手動で)有効にできます。
ストレージデバイスを読み取り専用にする場合は、そのro
属性を1に設定します。
コマンドを実行する場合は、udevルールでRUN
キーを使用します(コマンドへのフルパスが必要であり、使用可能なエスケープシーケンスと環境については manual を参照してください)。変数)。そのコマンドでGUIにアクセスする場合は、 リモートXディスプレイでウィンドウを開く(「ディスプレイを開けない」理由)? を参照してください。
いくつかのudevルールを設定する必要があります。
要件の手順:
関連するスレッドは次のとおりです。 https://askubuntu.com/questions/15570/configure-udev-to-change-permissions-on-usb-hid-device
それは説明を助け、さらなる指針を提供するはずです。行き詰まった場合は、質問に次の障害を追加してください。