ইউএসবি এইচডি ডিভাইসে অনুমতি পরিবর্তন করতে ইউদেবকে কনফিগার করবেন?


21

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

এই মুহুর্তে, এর সাথে প্রযোজ্য যে কোনও বিদ্যমান নিয়ম সন্ধান করতে আমার সমস্যা হচ্ছে (আমি "হিড্রাও" এর জন্য গ্রেপড হয়েছি /lib/udev/rules.dএবং /etc/udev/rules.dঅন্যান্য জিনিসের মধ্যেও)।

উত্তর:


21

সাধারণত, এটি এই জাতীয় বিষয়বস্তু সহ /etc/udev/rules.dএকটি ফাইল যুক্ত করে এটি করা হয় 50-usb-scale.conf:

SUBSYSTEM=="usb", ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2", MODE="0666"

যেখানে এইচএক্স 1 এবং এইচএক্স 2 যথাক্রমে বিক্রেতার এবং পণ্য আইডি দিয়ে প্রতিস্থাপন করা হয়েছে।

পরিবর্তে ইন্টারফেস টাইপ ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2"মেলানোর জন্য , আপনি একটি ম্যাচ (HID) bInterfaceClassথাকার পরিবর্তে চেষ্টা করতে পারেন 03:

SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", MODE="0666"

তবে সতর্কতা অবলম্বন করুন, এটি ইঁদুর এবং কীবোর্ডগুলিও ধরবে।


4
উবুন্টু 14.04 এ আপনাকে MODE: = "0666" ব্যবহার করতে হবে, কোলন ছাড়াই নিয়ম কিছুই করে না।
এডউইনডাব্লু

2
14.04 এ এই ফাইলটির একটি .rulesএক্সটেনশন থাকতে হবে। একটি .confএক্সটেনশন সহ একটি ফাইল কাজ করবে না।
চেরানো

1
lsusb -vvvআইডিপ্রডাক্ট এবং আইডিভেন্ডার পেতে ব্যবহার করুন
জাভিয়েয়ার 13

2
যেহেতু এই প্রশ্নটি গুগল আউটপুটে বেশ জনপ্রিয় ... আমার ধারণা এটি এটিটিআরএস নয়, এটিটিআরএস হওয়া উচিত - কমপক্ষে এই পরিবর্তনটি এটি আমার জন্য স্থির করে।
infthi

2
14.04.5 LTS এ আমি খুঁজে পেয়েছি: lsusbকী সংযুক্ত এবং আইডি রয়েছে তা দেখার জন্য এটি একটি ভাল শুরু। idVendorএবং idProductম্যাচগুলি কেস-সংবেদনশীল বলে মনে হয় , তাই আইডি DA77আমার পক্ষে কাজ করে না তবে da77তা করে। (হ্যান্ডি ডায়াগনস্টিক:, udevadm info --attribute-walk /dev/bus/usb/008/023বাস 008 ডিভাইস 023 আমার উদাহরণ; আপনার lsusbজন্য।) একটি বিধি যুক্ত করার পরে sudo udevadm control --reload-rulesএবং sudo udevadm triggerপুনরায় বুট করা এড়ানো: তার পরে কয়েক সেকেন্ড পরে পরিবর্তনগুলি । এটিটি বনাম এটিটিআরএস কোনও প্রতিকূলতা তৈরি করে না। আমার .rules ফাইল লেখা আছে: SUBSYSTEM=="usb", ATTR{idVendor}=="da77", ATTR{idProduct}=="d12e", GROUP="users", MODE="0666"
এল জোরকো

7

শুধু সংক্ষিপ্তসার জন্য:

আপনি এর জন্য ফিল্টার করতে পারেন:

  • idVendor
  • idProduct
  • ক্রমিক

আর ব্যবহার করুন:

== সমতার জন্য তুলনা করুন।

! = বৈষম্যের জন্য তুলনা করুন।

= একটি কীতে একটি মান নির্ধারণ করুন। একটি তালিকা প্রতিনিধিত্ব করে এমন কীগুলি পুনরায় সেট করা হয় এবং কেবলমাত্র এই একক মান নির্ধারিত হয়।

+ = এন্ট্রিগুলির তালিকা ধারণ করে এমন একটি কীতে মান যুক্ত করুন।

: = শেষ পর্যন্ত একটি কীতে একটি মান নির্ধারণ করুন; পরবর্তী কোনও পরিবর্তন বাতিল করুন।

আপনি কোনও নির্দিষ্ট ডিভাইসকে / dev / ... এ একটি নির্দিষ্ট নতুন পাথ দিতে পারেন
উদাহরণ:

KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", ATTRS{serial}=="1234567", GROUP="cdrom", OWNER="user28", MODE="0640", SYMLINK+="myhid"

ফলাফল স্বরূপ:

আপনি '/ dev / hiddevx' এর মাধ্যমে বা '/ dev / myhid' এর মাধ্যমে সহজেই ডিভাইসটি অ্যাক্সেস করতে পারেন, গ্রুপ 'সিড্রোম' এর প্রতিটি ব্যবহারকারী ডিভাইস থেকে পড়তে পারে। মালিক 'ব্যবহারকারী 28' পড়তে এবং লিখতে পারে।

বা সরল:

KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", MODE="0666"

ফলাফলগুলিতে: প্রতিটি ব্যবহারকারী ভেন্ডর 0x16c0 থেকে প্রতিটি হিডদেবসে অ্যাক্সেস করতে পারে

বিশদ জন্য দেখুন: ডক্স


2
:=তুলনা জন্য নয়। দস্তাবেজগুলি "শেষ পর্যন্ত কোনও কীতে একটি মান নির্ধারণ করুন; পরবর্তী কোনও পরিবর্তনকে অস্বীকার করুন।"
লুকাস

5

আপনার যদি (আমার মতো) ttyACM0অনুমতিগুলি পরিবর্তন করতে হয় তবে এটি আমার সেটিংস:

KERNEL=="ttyACM0", MODE="0777"

আমি যখন বিক্রেতা এবং পণ্য আইডি নির্দিষ্ট করার চেষ্টা করেছি তখন এটি ব্যর্থ হয়েছিল। আমি নিশ্চিত না কেন।


হ্যাঁ, কার্নেল বিকল্পটি বেশিরভাগ এইচআইডি ডিভাইসের জন্য কাজ করে, ইউএসবি সাবসিস্টেমের চেয়ে ভাল
মুরিউকি ডেভিড

2

এটি যদি একটি হাইড্রো ডিভাইস হয় তবে আপনাকে করতে হবে

chmod 0666 /dev/hidrawX

যেখানে এক্স হিড ডিভাইস নম্বর, যেমন hidraw0। আপনি করতে পারেন

ls /dev/hid*

একটি তালিকা দেখতে :) বা ঠিক করুন

sudo chmod 0666 /dev/hidraw*

সমস্ত hidraw ডিভাইস সেট করতে, সম্ভবত প্রস্তাবিত নয়।


2

উবুন্টু 18.04 আপডেট / স্পষ্টতা:

কিস কুকের উত্তরটি নিকটে তবে 18.04 এ কাজ করতে 2 টি পরিবর্তন দরকার (বর্তমান প্রকাশ এবং কেবলমাত্র আমি এটি পরীক্ষা করেছি)।

  1. আপনার idVendor এবং idProduct সঙ্গে খুঁজুন lsusb
    • এটি "আইডি" এর পরে 2 টি হেক্স মান হবে, কোলন দিয়ে পৃথক হবে। আমি একটি স্ক্যানার যুক্ত করছি। lsusb আমাকে দিয়েছে:
      বাস 001 ডিভাইস 011: আইডি 04 বি 8: 014a সিকো অ্যাপসন কর্পস। 
  2. রুট হিসাবে একটি ফাইল /etc/udev/rules.d এ যুক্ত করুন
    • 50-usb-epsonscanner.rules এর মতো কিছু
    • এক্সটেনশনটি অবশ্যই ".rules" হতে হবে  
  3. এই ফাইলটিতে যুক্ত করুন:
    সাবস্কায়ম == "ইউএসবি", এটিটিআরএস {আইডিওয়েন্ডার = == "04 বি 8", এটিটিআর {আইডিপ্রডাক্ট} == "014 এ", মোডে = "0666"
    তবে আপনার আইডিভেন্ডর এবং আইডিপ্রডাক্ট হেক্স মানগুলির সাথে।
    • নোট করুন এটি "এটিটিআরএস" "এটিটিআর" নয়।
  4. পুনরায় লগইন করুন। পুনরায় বুট করার দরকার নেই।

ATTRSউভয় বিক্রেতা এবং পণ্য আইডি? তারপরে আপনার কোডের নমুনাটি ভুল (ঠিক যেমন আপনি পরে দুটি লাইন লিখেছেন)।
নিও পোস্ট আধুনিক

ঠিক দ্বিতীয়টি হ'ল এটিটিআর। এখানে কাজ করে। অনুমান করছি এটি একটি ত্রুটি যা সতর্কতা ছাড়াই পরিবর্তিত হতে পারে।
gatohaus
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.