लिनक्स वातावरण में वेंडर आईडी पर आधारित USB उपकरणों को कैसे निष्क्रिय करें?


11

मैं लिनक्स वातावरण में वेंडर आईडी के आधार पर USB उपकरणों को निष्क्रिय करना चाहता हूं। मैं विक्रेता आईडी के आधार पर केवल विशिष्ट USB उपकरणों की अनुमति देना चाहता हूं।


कैसे लिनक्स में यूएसबी / पेन ड्राइव को ब्लॉक करें (kali linux) grprajapat.blogspot.in/2014/09/…

मेरे पास एक विशिष्ट विक्रेता है: डिवाइस आईडी जिसके लिए मैं cdc_acm को अक्षम करना चाहता हूं। मैंने तब से इसे एक अलग प्रश्न बना दिया है
मिराबिलोस 13

जवाबों:


10

आप एक udv नियम बना सकते हैं जो डिफ़ॉल्ट रूप से उपकरणों को निष्क्रिय करता है, लेकिन कुछ लोगों को विक्रेता आईडी द्वारा सक्षम बनाता है। एक फाइल बनाएं /etc/udev/rules.d/01-usblockdown.rulesजिसमें उपकरणों को निष्क्रिय करने का नियम हो:

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

और फिर उन उपकरणों को सक्षम करने के लिए नियम जिन्हें आप अनुमति देना चाहते हैं (आप ATTR{idVendor}विक्रेता आईडी पर प्राप्त करने के लिए उपयोग कर सकते हैं ):

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

अधिक जानकारी के लिए "UDEV का उपयोग करके लिनक्स को बंद करना" देखें ।


उपरोक्त आदेश पर्याप्त है या हमें इसके प्रभाव को प्राप्त करने के लिए कोई भी udvadm ट्रिगर करना होगा।
सुब्बाराव

हाय स्टीफन, हमें विशिष्ट पेनड्राइव की अनुमति देने के लिए दोनों नियमों को जोड़ना होगा?
सुब्बाराव

@subbarao हां, आपको दोनों नियमों को जोड़ना होगा, पहला डिफ़ॉल्ट प्रति कुछ भी ब्लॉक करता है, दूसरा कुछ उपकरणों की अनुमति देता है।
DBX12

जब आप सिस्टम में बूट हो जाते हैं, तो आप कीबोर्ड कहते हैं, इसके लिए यह काम करता है। लेकिन अगर कीबोर्ड जुड़ा हुआ है और आप रिबूट करते हैं, तो कीबोर्ड ओएस बूटिंग बैक अप पर काम करता है। कीबोर्ड को फिर से प्लग करना, फिर से प्लग करना, कीबोर्ड अपेक्षा के अनुरूप काम नहीं करता है। क्या कुछ क्षेत्र अधिक निचले स्तर के हैं जो बूट डिवाइस सक्रिय होने से पहले इस नियम को चलाया जा सकता है?
स्कॉट एन

3

(यह एक टिप्पणी के रूप में बेहतर हो सकता है लेकिन मेरे पास अंकों की कमी है इसलिए इसे एक उत्तर में विस्तारित किया है)

मैं यहां आया था कि कैसे विक्रेता और उत्पाद आईडी द्वारा किसी विशिष्ट को अक्षम करने के अलावा सभी यूएसबी उपकरणों की अनुमति दी जाए। Udv के साथ एक usb साउंड डिवाइस को कैसे निष्क्रिय करें यह 0d8c: 000c उदाहरण के लिए उत्तर देता है।

बनाएँ /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'"

उत्तर और RUN=बनाम के साथ एक टिप्पणी के बीच एक विसंगति RUN+=, मैंने पूर्व की कोशिश की और यह ठीक काम किया।

मैं dmesg या lusb से अलग-अलग रिपोर्ट करने की उम्मीद कर रहा था, लेकिन वे दोनों पहले की तरह ही अप्रकाशित डिवाइस को दिखा रहे हैं, लेकिन अन्य प्रक्रियाएं / मॉड्यूल जो स्वचालित रूप से लॉन्च किए गए हैं, वे दिखाई नहीं देंगे जो वांछित प्रभाव था। cat /sys/bus/usb/devices/1-2.2.1.1.4/authorized(1-2.2 ... उदाहरण के लिए जो dmesg में पाया जा सकता है) से पता चलता है कि 0 को सही जगह पर रखा गया था।


मुझे नहीं पता कि udv में कुछ बदलाव हुए हैं, लेकिन आजकल की विशेषताओं को नाम दिया गया है ATTRS(बहुवचन) और न कि ATTRजब मैं उपकरणों के साथ काम करता हूं udevadm
बैप्टिस्ट मिल-मैथियास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.