লিনাক্স পরিবেশে বিক্রেতা আইডির উপর ভিত্তি করে ইউএসবি ডিভাইসগুলি কীভাবে অক্ষম করবেন?


11

আমি লিনাক্স পরিবেশে বিক্রেতা আইডির ভিত্তিতে ইউএসবি ডিভাইসগুলি অক্ষম করতে চাই। আমি বিক্রেতার আইডির ভিত্তিতে কেবলমাত্র নির্দিষ্ট ইউএসবি ডিভাইসগুলিতে অনুমতি দিতে চাই।


লিনাক্সে (কালি লিনাক্স) ইউএসবি / পেন ড্রাইভকে কীভাবে ব্লক করবেন গ্রিপরাজাপট.ব্লগস্পট.আইনি

আমার একটি নির্দিষ্ট বিক্রেতার রয়েছে: ডিভাইস আইডি আমি এর জন্য সিডিসি_এ্যাকএম অক্ষম করতে চাই। আমি তখন থেকে এটিকে একটি পৃথক প্রশ্নে পরিণত করেছি
মীরাবিলোস

উত্তর:


10

আপনি একটি ওদেব বিধি তৈরি করতে পারেন যা ডিফল্টরূপে ডিভাইসগুলিকে অক্ষম করে, তবে বিক্রেতা আইডির মাধ্যমে নির্দিষ্ট কিছু সক্ষম করে। /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'"

আরও তথ্যের জন্য "ইউডিইভি ব্যবহার করে লিনাক্স লকডাউন ডাউন" দেখুন ।


উপরের কমান্ডটিই যথেষ্ট বা এটির প্রভাব পেতে আমাদের কোনও ওদেবডেম ট্রিগার করতে হবে।
সাববারও

হাই স্টিফেন, নির্দিষ্ট পেনড্রাইভের অনুমতি দেওয়ার জন্য আমাদের উভয় বিধি যুক্ত করতে হবে?
সাববারও

@ সুব্বারাও হ্যাঁ, আপনাকে উভয় বিধি যুক্ত করতে হবে, প্রথমটি ডিফল্ট হিসাবে কোনও কিছু ব্লক করে, দ্বিতীয়টি নির্দিষ্ট কিছু ডিভাইসগুলিতে অনুমতি দেয়।
DBX12

সিস্টেম বুট হয়ে গেলে আপনি যখন প্লাগ ইন করেন, একটি কীবোর্ড বলুন তখন এটি কাজ করে। তবে যদি কীবোর্ডটি সংযুক্ত থাকে এবং আপনি পুনরায় বুট করেন তবে কীবোর্ডটি ওএস বুটআপ ব্যাকআপের উপর কাজ করে। কীবোর্ডটি আনপ্লাগিং করে পুনরায় প্লাগ করুন, কীবোর্ডটি প্রত্যাশার মতো কাজ করে না। আরও কিছু নিম্ন স্তরের এমন কোনও অঞ্চল রয়েছে যা বুট ডিভাইসগুলি সক্রিয় হওয়ার আগে এই নিয়মটি চালানো যেতে পারে?
স্কটএন

3

(এটি একটি মন্তব্য হিসাবে ভাল হতে পারে তবে আমার এগুলির একটি উত্তর হিসাবে প্রসারিত পয়েন্টের অভাব রয়েছে)

আমি এখানে বিক্রেতার এবং পণ্য আইডি দ্বারা নির্দিষ্ট কোনও অক্ষম করা বাদে সমস্ত ইউএসবি ডিভাইসগুলিকে কীভাবে অনুমতি দেওয়া যায় তা সন্ধান করতে এসেছি। ইউদেব সহ কোনও ইউএসবি সাউন্ড ডিভাইস কীভাবে অক্ষম করবেন তা 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-1.2 ... উদাহরণস্বরূপ যা ডেমসগে পাওয়া যায়) দেখায় যে 0 টি সঠিক জায়গায় রাখা হয়েছিল।


আমি জানি না যে উদেবের মধ্যে কিছু পরিবর্তন হয়েছিল কিনা, তবে আজকাল বৈশিষ্টগুলির নাম দেওয়া হয়েছে ATTRS(বহুবচন) এবং ATTRযখন আমি ডিভাইসগুলির সাথে কোয়েরি করি না তখন তা নয় udevadm
ব্যাপটিস্ট মিল-ম্যাথিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.