/ ডিভ মধ্যে অনুমতি নির্ধারণ করে কি?


11

আমার একটি বাগ আছে যেখানে অনুমতিগুলি /dev/input/event*ভুল রয়েছে, তাই আমি যখন মাম্বলটি ব্যবহার করি তখন অ্যাপ্লিকেশনটিতে কী টিপুনগুলি সনাক্ত করতে পারে না। আমি যদি নিম্নলিখিত কমান্ডটি চালিত করি তবে এটি সমস্যাটিকে "ঠিক করে" দেয় তবে আমি একটি স্থায়ী সমাধান চাই।

sudo chmod a+r /dev/input/event/*

কী কী অনুমতিগুলি নির্ধারণ করে /dev/input/event*এবং আমি কীভাবে স্থায়ীভাবে সেট করব?


6
মনে রাখবেন যে আপনি যদি "সমস্ত" পড়ার অনুমতি দেন /dev/input/event/*তবে আপনি অবশ্যই মূলত প্রত্যেককে আপনার কীবোর্ড স্নিগ্ধ করতে অ্যাক্সেস দিচ্ছেন, উদাহরণস্বরূপ আপনি যে পাসওয়ার্ডগুলি টাইপ করেন। একটি একক ব্যবহারকারীর সিস্টেমে এটি এতটা গুরুত্বপূর্ণ নাও হতে পারে, তবে কোনও একক ব্যবহারকারী সিস্টেমে আমরা সাধারণত ব্যবহারকারীদের সুরক্ষার অতিরিক্ত স্তর হিসাবে ব্যবহার করি যদি কোনও উপাদান আপস হয়ে যায় এবং উদাহরণস্বরূপ আপনার nobodyব্যবহারকারীকে আপনার কীবোর্ডে অ্যাক্সেস দিতে পারেন ইনপুট স্ট্রিম আপনি এই সুরক্ষাটিকে দুর্বল করছেন। যদিও এটি সমস্যার সাথে "স্থির" হতে পারে তবে এটি আপনার সমস্যার জন্য উপযুক্ত কোনও সাধারণ সমাধান নয়। আরও ভাল উপায় থাকতে হবে।
রবি বাসাক

3
@ পপি আপনি নোডগুলিতে থাকা অনুমতি কেন /dev/inputভুল, এবং বর্তমানে মালিকানা এবং অনুমতিগুলি কী (সম্ভবত এর আউটপুট সহ ls -l) রয়েছে সে সম্পর্কে আপনি আরও বলতে পারেন ? সমস্যা হল inputগোষ্ঠীটিকে জানতে অনুমতি দেওয়া হয় নি (অথবা এটা গ্রুপের মালিক নয় যে)? আমার সিস্টেমে ইভেন্ট ফাইলগুলির root:inputমালিকানা রয়েছে এবং ব্যবহারকারী এবং গ্রুপের মালিকরা উভয়ই সেগুলি থেকে পড়তে পারেন। আপনার যদি এটি না থাকে তবে আপনার সম্ভবত সবাই এগুলি পড়তে দেওয়ার চেয়ে সেভাবে সেট আপ করার চেষ্টা করা উচিত । আপনি যদি না এই আছে, এটা যথেষ্ট হতে পারে অস্পষ্টভাবে এর ক্ষমতা চালানোর জন্য inputগ্রুপ।
এলিয়াহ কাগন

@ এলিয়াকাগান আমার উত্তর সম্পর্কে আপনি কী ভাবেন? আপনি কি এটি পর্যালোচনা করতে পারেন?
সের্গেই কোলোডিয়াজনি

হ্যাঁ এটা খারাপ এসিএল ব্যবহার করুন। আমার উত্তর নীচে দেখুন
solsTiCe

আপনি কি আমাকে বিতরণ সংস্করণ বা xorg-সার্ভার সংস্করণটি জানাতে পারেন? কারণ xorg-server 2: 1.9.99.902-2ubuntu1 সমস্যাটি সমাধান করেছে।
তোহিদ তাম্বলি

উত্তর:


4

ফাইলগুলিতে অনুমতি পরিচালনা করার আরও নমনীয় উপায় হ'ল এসিএল ব্যবহার করা ।

sudo setfacl -m u:popey:rw /dev/input/eventx

আপনার যদি সত্যিই এটিকে স্থায়ী করতে হয় তবে আপনি কোনও ইউদেব বিধি ব্যবহার করতে পারেন যা এটি আপনার ইভেন্ট ইনপুট ডিভাইসের জন্য সেট করে

এর সাথে একটি ফাইল /etc/udev/rules.d/99-userdev-input.rules যুক্ত করুন :

KERNEL=="event*", SUBSYSTEM=="input", RUN+="/usr/bin/setfacl -m u:popey:rw $env{DEVNAME}"

আপনি এসিএল অনুমতি দিয়ে পরীক্ষা করতে পারেন

getfacl /dev/input/event*

2

আমি জানি না প্রাথমিকভাবে অক্ষর ডিভাইস / ডেভ / ইনপুট / ইভেন্টের অনুমতিগুলি কী সেট করে দেয় *

তবে, আমি জানি যে আপনি এমন কোনও সফ্টওয়্যার দিয়ে সেই অনুমতিগুলি পরিবর্তন করতে পারবেন যা আপনার সিস্টেমের ডিফল্টরূপে কোর্টিলের অংশ হিসাবে রয়েছে। কমান্ড দেখুন man mknod

আমার ইভেন্ট ডিভাইসের অনুমতিগুলি হ'ল:

crw-rw ---- 1 রুট ইনপুট 13, 64 এপ্রিল 14 06:39 / দেব / ইনপুট / ইভেন্ট0

এখানে কয়েকটি ব্যবহারের উদাহরণ দেওয়া হল:

~$ sudo mknod lolwat c 4 64 
~$ sudo mknod lolwatnow c 4 64  -m 777
~$ ls -l lolwat*
crw-r--r-- 1 root root 4, 64 Apr 14 08:07 lolwat
crwxrwxrwx 1 root root 4, 64 Apr 14 08:08 lolwatnow

বড় এবং অপ্রধান সংখ্যার বিষয়ে সিদ্ধান্ত নেওয়ার জন্য যদি আপনার আরও তথ্যের প্রয়োজন হয় তবে এখানে দেখুন

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

আমার উদাহরণ হিসাবে: / dev / ইনপুট / ইভেন্ট0 এর কাছে ক্রউ-আরডব্লিউ অনুমতি রয়েছে, তবে লোলওয়াতের ডিফল্ট অনুমতিগুলি crw-r তে সেট করা হয়েছিল - r--

আমার কিছুটা অনিশ্চয়তা রয়েছে, ধরণের ডিভাইস মূল অনুমতিগুলি নির্দেশ করে কিনা তা খুঁজে বের করার জন্য আপনি এটি নিয়ে পরীক্ষা করতে পারেন।

এমকেএনড সম্পর্কে আরও তথ্যের জন্য এখানে অন্য লিঙ্ক


শিকড় হিসাবে দৌড়ঝাঁপ চলছে?
j0h

1

মূলত, আপনাকে একটি ফাইল যুক্ত করতে হবে /etc/udev/rules.d/(আপনি এটির মতো নাম দিতে পারেন 75-input-events.conf)

এবং KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"সেই ফাইলটিতে প্রতিটি ইভেন্টের জন্য লাইন যুক্ত করুন, যেখানে x হল সংখ্যা। উদাহরণস্বরূপ, আমার 0 থেকে 9 টি ইভেন্ট রয়েছে, তাই আমি ব্যক্তিগতভাবে তাদের প্রত্যেকটির জন্য করব। এই থ্রেডের শেষ উত্তরটি আপনাকে আরও যুক্ত করতে পারে KERNEL==event*(অর্থাত্ ওয়াইল্ড কার্ডের সাহায্যে)।


0

আমার পরামর্শ হ'ল আপনি অ্যাপ্লিকেশন ইনপুট-ইউটিস ইনস্টল করুন

sudo -i
apt-get update
apt-get install input-utils

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

সুদের আদেশ হ'ল:

sudo -i 
lsinput

এটি সমস্ত ইনপুট ডিভাইস এবং ডিভাইস সম্পর্কিত সম্পর্কিত বিবরণ ডাম্প করে।

Nth ডিভাইস নম্বর নির্দিষ্ট করে কমান্ডটি ব্যবহার করে কেউ ইনপুট ইভেন্টগুলি পর্যবেক্ষণ করতে পারে:

sudo -i
input-events <device number>

তারপরে কেউ Nth ডিভাইস নম্বর নির্দিষ্ট করে কমান্ডটি ব্যবহার করে কোনও নির্দিষ্ট ইভেন্ট ডিভাইসের কীবোর্ড ম্যাপিংকে ফেলে দিতে পারে:

sudo -i
input-kyb <device number>

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

উদেব লিনাক্স কার্নেলের ডিভাইস ম্যানেজার। এটি / dev এ ডিভাইস নোডগুলি পরিচালনা করে এবং ডিভাইসগুলি যুক্ত করার সময় বা সরানোর সময় সমস্ত ব্যবহারকারীর স্পেস ক্রিয়া পরিচালনা করে।

ইভদেব লিনাক্স কার্নেলের একটি জেনেরিক ইনপুট ইভেন্ট ইন্টারফেস। এটি ডিভাইস ড্রাইভারদের কাছ থেকে কাঁচা ইনপুট ইভেন্টগুলিকে সাধারণীকরণ করে এবং ডিরেক্টরিতে অক্ষরযুক্ত ডিভাইসের মাধ্যমে এগুলিকে উপলব্ধ করে /dev/input/

প্রতিবার যখনই ডিভাইসের কাঠামোর মধ্যে কোনও পরিবর্তন ঘটে, কার্নেলটি একটি ইউভেন্ট নির্গত হয় যা উদেব দ্বারা গ্রহণ করা হয়। udev এরপরে /etc/udev/rules.d, /run/udev/rules.d এবং /lib/udev/rules.d ডিরেক্টরিতে বর্ণিত বিধিগুলি অনুসরণ করে।

যুগে যুগে থাকা তথ্যের উপর ভিত্তি করে, এটি নিয়ম বা বিধিগুলি খুঁজে বের করে যা এটির প্রয়োজন হয় এবং প্রয়োজনীয় ক্রিয়া সম্পাদন করে।

এই ক্রিয়াগুলি ডিভাইস ফাইলগুলি তৈরি বা মুছে ফেলা হতে পারে তবে নির্দিষ্ট ফার্মওয়্যার ফাইলগুলি কার্নেল মেমরির মধ্যে লোড করা ট্রিগার করতে পারে।


0

টার্মিনাল রান:

sudo ন্যানো-বি /etc/rc.local

"প্রস্থান 0" বলার রেখায় নীচে যান এবং এটির উপরে একটি লাইনে টাইপ করুন:

sudo chmod এ + আর / দেব / ইনপুট / ইভেন্ট

এটি থেকে প্রস্থান করতে Ctrl + x চাপুন। এটি আপনি জিজ্ঞাসা করবে আপনি সংরক্ষণ করতে চান কিনা। হিট y এটি আপনাকে কী হিসাবে সংরক্ষণ করবেন জিজ্ঞাসা করবে। শুধু এন্টার চাপুন।

এখন, এই কমান্ডটি প্রতিটি বুটে শুরু হওয়া উচিত এবং এভাবে আপনাকে সেই ফোল্ডারে অনুমতি দেওয়া উচিত। /Etc/rc.local ফাইলটিতে স্বয়ংক্রিয়ভাবে রুট সুবিধাগুলি থাকে তাই এটি করার জন্য আপনার কোনও পাসওয়ার্ড প্রবেশ করার প্রয়োজন হবে না।

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