উদেব ব্যবহার করুন। উদেব একজন ডিভাইস ম্যানেজার ডেমন। অন্যান্য জিনিসগুলির মধ্যে এটি আপনার ডিভাইসগুলির নামকরণের জন্য দায়ী। নিয়ম ডিরেক্টরিতে নির্দিষ্ট সিনট্যাক্স সহ ফাইলগুলি রেখে আপনি উদেব-বিধিগুলি সংজ্ঞায়িত করতে পারেন। নিয়মগুলি অনেক কিছুই করতে পারে - বিশেষত তারা কোনও স্ক্রিপ্টগুলি চালাতে পারে, যখন কোনও নির্দিষ্ট ডিভাইস সংযুক্ত থাকে।
আপনার সমস্যা কীভাবে সমাধান করবেন:
প্রথমে আপনার ডিভাইসে তথ্য সংগ্রহ করা দরকার। আসুন যাক আপনি এটি সংযুক্ত করেছেন, এবং জানেন যে এটি নামে চলে /dev/sdb1
। যদি তাই চালান:
udevadm info -a -p $(udevadm info -q path -n /dev/sdb1)
কমান্ডটি আপনার ডিভাইস সম্পর্কিত তথ্য আউটপুট দেবে। এটি একটি দীর্ঘ দীর্ঘ। আপনাকে এমন কিছু সন্ধান করতে হবে যা ডিভাইসটিকে স্বতন্ত্রভাবে সনাক্ত করে। এটি সিরিয়াল ATTRS{serial}=="UA04FLGC"
বা অন্যান্য বৈশিষ্ট্যের সংমিশ্রণ ATTRS{idVendor}
এবং যেমন হতে পারে ATTRS{idProduct}
। বেশিরভাগ নাম কম বেশি স্ব-বর্ণনামূলক। যুক্তিসঙ্গত বলে মনে হয় এমন কয়েকটি বা একটি মিশ্রণ চয়ন করুন - যদি তারা কাজ না করে তবে অন্য কিছু চেষ্টা করুন।
একবার আপনি কোনও অনন্য শনাক্তকারীকে খুঁজে পেলে একটি ফাইল তৈরি করুন /etc/udev/rules.d
যা দুটি অঙ্ক দিয়ে শুরু হয় এবং শেষ হয় .rules
। দুটি অঙ্ক এই .rules- ফাইলগুলি প্রক্রিয়াকরণের ক্রম নির্দিষ্ট করে - 70-usb-log-custom.rules
আপনার জন্য ভাল পছন্দ হওয়া উচিত। এই নিয়ম ফাইলটির বাক্য গঠনটি খুব জটিল হতে পারে। আপনি যদি আগ্রহী হন তবে গুগল উদেব। সদ্য তৈরি হওয়া ফাইলটি না খুললে এবং এ জাতীয় কিছু দেখতে এটি সম্পাদনা করুন:
# /etc/udev/rules.d/70-usb-log-custom.rules
KERNEL=="sd?1", ATTRS{serial}=="UA04FLGC", ACTION=="add", SYMLINK+="cusb1", RUN+="/home/confus/bin/usb-encrypt.sh add %k"
ENV{ID_FS_USAGE}=="crypto", ACTION=="remove", RUN+="/home/confus/bin/usb-encrypt.sh remove %k"
SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="users", MODE="0666"
এটি আমি ব্যবহার করছি এমন একটি আসল উদেব ফাইল। এটিতে এর তিনটি বিধি রয়েছে। প্রতিটি লাইন তার নিজস্ব একটি নিয়ম। যখনই কোনও এনক্রিপ্টড ডিস্ক সংযুক্ত থাকে তখন প্রথম লাইনটি একটি ডিক্রিপ্টড ডিভাইস তৈরি করতে একটি স্ক্রিপ্ট চালায়। দ্বিতীয় লাইনে ডিক্রিপ্ট হওয়া ডিভাইসটি সরানো হলে ইভেন্টে বিভিন্ন বিকল্পের সাথে একই স্ক্রিপ্টের অনুরোধ জানায়। তৃতীয় লাইনটি অন্য সম্পর্কিত ডিভাইসের জন্য অনুমতি নির্ধারণ করে।
সম্ভবত আপনার কেবল প্রথম লাইনের প্রয়োজন হবে। বাকীটি মুছুন এবং ডান সিরিয়ালটি সন্নিবেশ করুন (বা আপনার ডিভাইসটি সনাক্ত করার জন্য আপনি যে পরামিতিগুলি বেছে নিয়েছেন)।
আমার ফাইলের ব্যাখ্যা:
KERNEL=="sd?1"
ডিভাইস আমরা এই নিয়ম খুঁজছেন লাইন বরাবর নামকরণ করা হয় বলে /dev/sda1
, /dev/sdc1
বা ওই জাতীয় কিছু। প্রশ্ন চিহ্ন যে কোনও চিঠির জন্য একটি ওয়াইল্ডকার্ড। ATTRS{serial}=="UA04FLGC"
এখানে অনন্য সনাক্তকারী। অন্যান্য ডিভাইসের জন্য আমি বলছিলাম (তৃতীয় লাইন) আমি সিরিয়াল নম্বরটি ব্যবহার করছি না তবে এটির শনাক্তকরণ SYSFS{idVendor}=="1781"
এবং SYSFS{idProduct}=="0c9f"
সনাক্তকরণের জন্য।
ACTION=="add"
বিধিটি বলছে এটি কেবল তখনই কাজ করা উচিত যখন ডিভাইস যুক্ত করা হয়; এটি মুছে ফেলা হবে না যখন।
SYMLINK+="cusb1"
ডিস্ক তাই এক নীচে পাবেন করার জন্য একটি সিমবলিক লিঙ্ক তৈরি করে /dev/cusb1
।
RUN+="/home/confus/bin/usb-encrypt.sh add %k"
স্ক্রিপ্টটি চালায় এবং এতে 'অ্যাড' এবং '% কে' (ডিভাইসের নাম) পাস করে।
আমি আরও বিস্তারিত জানাব না, যেহেতু উদেব বিধি সম্পর্কে দুর্দান্ত টিউটোরিয়াল রয়েছে। আপনি এখানে যা পড়েন তা তাকানোর পক্ষে যথেষ্ট হওয়া উচিত।