
既知の USB デバイスのみを許可する udev ルールを追加しましたが、ハブは承認されないため、すべての USB ポートが承認されません。これがハブの udev ルールです。
# Skeep not USB
SUBSYSTEM!="usb", GOTO="usb_end"
# Skeep remove actions
ACTION=="remove", GOTO="usb_end"
# 2.0 root hub
SUBSYSTEMS=="usb", ACTION=="add", ATTR{product}=="EHCI Host Controller", ATTR{serial}=="0000:00:1a.0", \
ATTR{idVendor}=="1d6b", ATTR{idProduct}=="0002", ATTR{bDeviceClass}=="09", ATTR{authorized}="1", GOTO="usb_end"
# Disable all other USB devices
SUBSYSTEMS=="usb", ACTION=="add", ATTR{authorized}="0"
LABEL="usb_end"
OS: Gentoo 強化版
カーネル: 4.7.9-hardened
答え1
udev ルールを設定してスクリプトを実行することで、udev ルールをデバッグできます。スクリプトはさまざまな項目をログに記録できます。
例: $DEVNAME, $ACTION
USB ハブからすべてのデータをログに記録すると、どのデバイスが欠落しているか、またはどの情報が欠落しているかを確認できます。
udev ルールでは、RUN+="/usr/local/bin/log.sh" が必要になります。
log.sh では、env >> /tmp/blabla.log、または echo "$DEVNAME $ACTION ..." >> /tmp/blabla.log です。