Saya ingin menonaktifkan perangkat usb berdasarkan id vendor di lingkungan Linux. Saya hanya ingin mengizinkan perangkat USB tertentu, berdasarkan id vendor.
Saya ingin menonaktifkan perangkat usb berdasarkan id vendor di lingkungan Linux. Saya hanya ingin mengizinkan perangkat USB tertentu, berdasarkan id vendor.
Jawaban:
Anda dapat membuat aturan udev yang menonaktifkan perangkat secara default, tetapi mengaktifkan yang tertentu dengan ID vendor. Buat file /etc/udev/rules.d/01-usblockdown.rules
yang berisi aturan untuk menonaktifkan perangkat:
ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done'"
Dan kemudian aturan untuk mengaktifkan perangkat yang ingin Anda izinkan (dapat Anda gunakan ATTR{idVendor}
untuk mendapatkan ID vendor):
ACTION=="add", ATTR{idVendor}=="0000" RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"
Lihat "Mengunci Linux menggunakan UDEV" untuk informasi lebih lanjut.
(ini mungkin lebih baik sebagai komentar tapi saya kekurangan poin sehingga diperluas menjadi jawaban)
Saya datang ke sini mencari cara mengizinkan semua perangkat usb kecuali menonaktifkan perangkat tertentu oleh vendor dan id produk. Cara menonaktifkan perangkat suara usb dengan udev menjawabnya untuk contoh 0d8c: 000c.
Buat /etc/udev/rules.d/disable-usb-device.rules
:
ACTION=="add", ATTR{idVendor}=="0d8c", ATTR{idProduct}=="000c", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"
Ada perbedaan antara jawaban dan komentar di bawah ini dengan RUN=
vs. RUN+=
, saya mencoba yang pertama dan itu bekerja dengan baik.
Saya mengharapkan dmesg atau lusb untuk melaporkan secara berbeda tetapi mereka berdua menunjukkan perangkat yang tidak diotorisasi disebutkan seperti sebelumnya, tetapi proses / modul lain yang akan diluncurkan secara otomatis tampaknya tidak berjalan yang merupakan efek yang diinginkan. cat /sys/bus/usb/devices/1-2.2.1.1.4/authorized
(1-2.2 ... misalnya yang dapat ditemukan di dmesg) menunjukkan bahwa 0 diletakkan di tempat yang tepat.
ATTRS
(jamak) dan tidak ATTR
ketika saya meminta perangkat dengan udevadm
.