Linux ortamında satıcı kimliğine göre USB cihazlarını nasıl devre dışı bırakabilirim?


11

Linux ortamında satıcı kimliğine göre usb cihazlarını devre dışı bırakmak istiyorum. Satıcı kimliğine göre yalnızca belirli USB aygıtlarına izin vermek istiyorum.


Linux'ta USB / PEN DRIVE Nasıl Engellenir (kali linux) grprajapat.blogspot.in/2014/09/…

Belirli bir satıcı var: cdc_acm devre dışı bırakmak istediğiniz aygıt kimliği. O zamandan beri bunu ayrı bir soru haline getirdim .
mirabilos

Yanıtlar:


10

Aygıtları varsayılan olarak devre dışı bırakan, ancak bazılarını satıcı kimliğiyle etkinleştiren bir udev kuralı oluşturabilirsiniz. /etc/udev/rules.d/01-usblockdown.rulesCihazları devre dışı bırakmak için kural içeren bir dosya oluşturun:

ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done'"

Ve sonra izin vermek istediğiniz cihazları etkinleştirme kuralları ( ATTR{idVendor}satıcı kimliğine ulaşmak için kullanabilirsiniz ):

ACTION=="add", ATTR{idVendor}=="0000" RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"

Daha fazla bilgi için bkz. "UDEV kullanarak Linux'u kilitleme" .


Yukarıdaki komut yeterlidir veya bunun etkisini elde etmek için herhangi bir udevadm tetikleyicisi yapmak zorundayız.
subbarao

Merhaba Stephane, belirli pendrive'a izin vermek için her iki kuralı da eklemeliyiz?
subbarao

@subbarao Evet, her iki kuralı da eklemeniz gerekiyor, ilki varsayılan olarak her şeyi engelliyor, ikincisi belirli cihazlara izin veriyor.
DBX12

Bu, sistem önyüklendikten sonra bir klavye taktığınız zaman işe yarar. Ancak klavye bağlıysa ve yeniden başlatılırsanız, klavye işletim sisteminin önyüklemesi sırasında çalışır. Klavyenin fişini çekip yeniden takın, klavye beklendiği gibi çalışmıyor. Önyükleme aygıtları etkinleştirilmeden önce bu kuralın çalıştırılabileceği daha düşük bir alan var mı?
ScottN

3

(Bu bir yorum olarak daha iyi olabilirdi ama bir cevaba kadar genişletilmiş puan eksikliği)

Buraya satıcı ve ürün kimliğiyle belirli bir cihazı devre dışı bırakmak dışında tüm usb cihazlarına nasıl izin verileceğini aramak için geldim. Udev ile bir usb ses cihazı nasıl devre dışı bırakılır 0d8c: 000c örneği için cevap verir.

Oluşturun /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'"

Orada cevap ve aşağıda bir yorum arasında bir tutarsızlık RUN=vs RUN+=, ben eski denenmiş ve cezası çalıştı.

Dmesg veya lusb'un farklı rapor vermesini bekliyordum, ancak ikisi de yetkisiz cihazın daha önce olduğu gibi numaralandırıldığını gösteriyor, ancak otomatik olarak başlatılacak diğer işlemler / modüller, istenen etkiyi göstermiyor gibi görünüyor. cat /sys/bus/usb/devices/1-2.2.1.1.4/authorized(örneğin dmesg'de bulunan 1-2.2 ...) 0'ın doğru yere yerleştirildiğini gösterir.


Udev arasında bazı değişiklikler olup olmadığını bilmiyorum, ama günümüzde öznitelikleri adlandırılır ATTRS(çoğul) ve ATTRben aygıtları sorgulamak zaman değil udevadm.
Baptiste Mille-Mathias
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.