আমি কোনও ডিফল্ট ব্যবহারকারীকে কীভাবে সিরিয়াল ডিভাইস ttyUSB0 ব্যবহার করার অনুমতি দেব?


35

আমার 2 জন ব্যবহারকারী সহ একটি উবুন্টু ১১.১০ সিস্টেম রয়েছে:

  • প্রথমটি ইনস্টলেশন চলাকালীন তৈরি হয়েছিল
  • দ্বিতীয়টি এর পরিবর্তে তৈরি হয়েছিল। এটি sudoers গ্রুপের অন্তর্গত।

এখন সমস্যাটি হ'ল দ্বিতীয়টি যখন কোনও ডিভাইস ব্যবহার করার চেষ্টা করে ttyUSB0তখন নিম্নলিখিত ত্রুটিটি ফিরে আসে:

"Could not open serial port /dev/ttyUSB0"

আমি এটি ব্যবহার করে এটি ঠিক করতে সক্ষম হয়েছি:

sudo chown :second_user /dev/ttyUSB0

তবে আমি যখন ডিভাইসটি সংযোগ বিচ্ছিন্ন করি এবং পুনরায় সংযোগ করি তখন সমস্যা ফিরে আসে।

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

ধন্যবাদ!

উত্তর:


48

আপনি লক্ষ্য /dev/ttyUSB0করেছেন যে , ডিভাইসটির গ্রুপ রয়েছে dialout। আপনাকে কেবল dialoutগ্রুপে দ্বিতীয় ব্যবহারকারী যুক্ত করতে হবে :

sudo adduser second_user dialout

দ্বিতীয়_ ব্যবহারকারীর এটি কার্যকর হওয়ার জন্য লগ আউট এবং আবার লগ ইন করতে হবে।


ধন্যবাদ জেরেমি! এটি কী ssh অ্যাক্সেসের জন্য কাজ করে? কারণ আমি যখন ssh এর মাধ্যমে পিসি অ্যাক্সেস করি তখন একই নামের দুটি ব্যবহারকারী দেখি। আমি মনে করি যে একজন স্থানীয় ব্যবহারকারী এবং অন্যটি ssh জন one কীভাবে আমি ssh ব্যবহারকারীকে মালিকানা দিতে পারি?
মাভেরিক

1
এটি সেকেন্ড_উজারকে যে কোনও লগইন, এসএসএস বা স্থানীয় থেকে সিরিয়াল পোর্ট অ্যাক্সেস করার অনুমতি দেবে। আপনাকে সেই ব্যবহারকারীর নির্দিষ্ট লগইনে মালিকানা নির্ধারণের দরকার নেই।
জেরেমি কের

2
হ্যাঁ তুমিই ঠিক. অ্যাক্সেস ভিজি এসএস করতে আমাকে লগআউট এবং তারপরে আবার লগইন করতে হয়েছিল।
মাভেরিক

স্বয়ংক্রিয়ভাবে লগ ইন করা কোনও ব্যবহারকারীর সেশনের জন্য আপনাকে কেবল এক্স উইন্ডো সিস্টেমে পুনরায় লগইন করার জন্য নয়, আপনাকে কম্পিউটারটি পুনরায় বুট করতে হবে। উবুন্টু 19.04 এর সাথে পর্যবেক্ষণ করা হয়েছে।
tanius

12

সহজ উপায়:

sudoedit /etc/udev/rules.d/50-myusb.rules

এই পাঠ্যটি সংরক্ষণ করুন:

KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"

ডিভাইসটি আনপ্লাগ করুন এবং এটিকে পুনরায় প্লাগ করুন এবং এটি কোনও ব্যবহারকারীর কাছ থেকে পড়তে / লিখতে হবে!


টিটিএএসিএম সকেটে ঘরে তৈরি ডিভাইসের জন্য 14.04 এ কাজ করে। ধন্যবাদ। +1
নন স্ট্যান্ডার্ডমডেল

নিয়মগুলি পুনরায় লোড করার জন্য আপনার কি পুনরায় প্লাগ করার দরকার নেই? sudo udevadm control --reload?
অ্যালেক্সিস পাকস

কোন ফাইল সিস্টেম আপনার / ইত্যাদি / উদেব সংরক্ষণ করে এবং আপনার যে ইউদেবের সংস্করণ রয়েছে তার উপর নির্ভর করে আপনার স্পষ্টতই পুনরায় লোড করার দরকার হতে পারে। তবে বেশিরভাগ মেশিনে আমি ব্যবহার করেছি, উদেব মনে হয় এটি স্বয়ংক্রিয়ভাবে বের হয়ে গেছে (ইনোটাইফাই ব্যবহার করে)।
অরিয়ন লোলর

এটি ঠিক কীভাবে করা উচিত তা নয়। ইউএসবি সিরিয়াল ডিভাইসগুলি ডায়ালআউট গ্রুপ বা এর অনুরূপ হওয়া উচিত এবং ব্যবহারকারীকে এতে যুক্ত করা উচিত। আপনি যা প্রস্তাব দিচ্ছেন তা অন্যান্য ধরণের ইউএসবি ডিভাইসগুলির জন্য অর্থপূর্ণ হবে
ক্রিস স্ট্রাটন

7

আপনি ইউডিইভি ব্যবহার করতে পারেন। এটি এমন একটি সিস্টেম যা প্রতিবার প্লাগ করে বা কোনও ডিভাইস আনপ্লাগ করে (অন্যান্য সামগ্রীগুলির মধ্যে)। এটির সাহায্যে আপনি অনুমতি নির্ধারণ সহ বিভিন্ন জিনিস স্ক্রিপ্ট করেন।

এটি চালান sudoedit /etc/udev/rules.d/50-ttyusb.rulesএবং সেখানে আটকে দিন:

KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",GROUP="uucp",MODE="0666"

সংরক্ষণ করুন, প্রস্থান করুন এবং পুনরায় প্লাগ করুন এবং আপনার আপ এবং চলমান হওয়া উচিত। 666 এ অনুমতি সেট করা যেকোনকে ডিভাইসে লেখার অনুমতি দেয়।

আমি এই পৃষ্ঠাটি বন্ধ করে দিচ্ছি যা কয়েক বছর আগে থেকে এসেছে তবে জেরেমির সমাধানটি যদি না করে তবে এর মতো কিছু কাজ করা উচিত ।


1
এটি আমার পক্ষে কাজ করেছে, আমি ইউদেব বিধিগুলি ব্যবহার করেছি, তবে আমি আমার নিজের বাক্যটি মেলানোর জন্য বাক্য গঠনটি পরিবর্তন করেছি। linux.m2osw.com/sane-cannot-find-any-scanners - মনে রাখবেন যে আপনি যদি MODE = "0666" ব্যবহার করেন তবে আপনার সম্ভবত গ্রুপের প্রয়োজন হবে না। কেবল একটি বা অন্যটি কার্যকর হবে।
অ্যালেক্সিস উইলক

5

কল্পনাপ্রসূত - এখানে দেওয়া ইউডিইভি সমাধানটি ছিল আমার টিকিট।

আমি ওয়াইনের মাধ্যমে আইকমের সিএস-F3020_F5010_F5020 প্রোগ্রাম ইনস্টল করেছি, কম পোর্টের জন্য লিঙ্কটি নীচে তৈরি করেছি:

ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1 but nothing. 

তারপরে আমি বুঝতে পেরেছিলাম যে আমাকে এটিকে অ্যাক্সেস করার অনুমতি দেওয়ার জন্য আমার / dev / ttyUSB0 এ অনুমতি পরিবর্তন করতে হবে। আপনি ইউএসবি আনপ্লাগ / পুনরায় প্লাগ না করা পর্যন্ত এটি দুর্দান্ত কাজ করে, তারপরে আপনাকে অনুমতিগুলি আবার পরিবর্তন করতে হবে।

আমি আমার ব্যবহারকারীকে ডায়ালআউট গ্রুপে যুক্ত করার চেষ্টা করেছি তবে এটি কোনও কারণে সমস্যার সমাধান করতে পারেনি।

ইউডিইভি ব্যবহার করা ধাঁধাটির চূড়ান্ত অংশটি সমাধান করে। এখন আমি লিনাক্স ব্যবহার করে আমার আইকম কম রেডিও প্রোগ্রাম করতে পারি, ইউএসবি / সিরিয়াল ডিভাইসটি কোনও ঝামেলা ছাড়াই প্লাগ এবং আনপ্লাগ করতে পারি। সাব্বাস। ধন্যবাদ।


3

উদেব নিয়ম করে কাজ করে তবে লিখিত হিসাবে তাদের কাছে সমস্ত ttyUSB*ডিভাইস সবার কাছে অ্যাক্সেসযোগ্য করার খুব বাজে পার্শ্ব প্রতিক্রিয়া রয়েছে । এটি ভাল নয় কারণ এটি সিস্টেমে কী রয়েছে তার উপর নির্ভর করে একটি সুরক্ষা ঝুঁকি হতে পারে।

পরিবর্তে আরও নির্বাচনী udev নিয়ম ব্যবহার করুন। উদাহরণস্বরূপ আমার কাছে একটি ইউএসবি ডিভাইস রয়েছে যা সুইচের একটি সেট পরিচালনা করে। ডেমসগ থেকে এটি প্লাগ ইন করা অবস্থায় আমি নির্মাতার আইডি এবং পণ্য কোড দেখতে পাই (প্লাস, এমনকি, এই ক্ষেত্রে, ডিভাইসের জন্য একটি সিরিয়াল নম্বর)। আমি যোগ করতে পারি:

ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001"

উপরের কার্নেল লাইনে এবং নিয়মটি কেবলমাত্র সেই ডিভাইসে প্রযোজ্য। MODEএকা ভেরিয়েবলকে নির্ধারণের চেয়ে আরও ভাল গ্রুপটিও সেট করে:

GROUP="whatever", MODE="0660"

তবে কেবলমাত্র গ্রুপ ' whatever' এর লোকেরা লেখার অ্যাক্সেস পাবেন।

জন বোলার

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