কোনও নির্দিষ্ট ভলিউম সংযুক্ত থাকলে কোনও ক্রিয়াকে ট্রিগার করা


10

আমার একটি ইউএসবি কী রয়েছে যাতে আমার কিপাস 2 পাসওয়ার্ড ডেটাবেস থাকে এবং আমি যখন এটি কম্পিউটারে প্লাগ ইন করি তখন কিছু ক্রিয়া সম্পাদন করতে চাই, যথা:

  • কিছু নির্দিষ্ট জায়গায় এটি স্বয়ংক্রিয়ভাবে মাউন্ট করুন
  • মাউন্টিং সঠিকভাবে করা হয়ে গেলে পাসওয়ার্ড ডাটাবেস ফাইলে কিপাস 2 চালু করে

সাধারণ কাজগুলি আমি অনুমান করি, তবে এটি কীভাবে করব তা আমি খুঁজে পাচ্ছি না।

আমি উবুন্টু ১২.১০ ব্যবহার করছি এবং এটি ডিভাইসটিকে "মিডিয়া ইউএসবি-কী" হিসাবে অটো-মাউন্ট করে এবং এতে চিত্রগুলি খোলার চেষ্টা করে (যদিও কিছুই নেই)।

এটি করার এবং উবুন্টু অটো-মাউন্টিং নিষ্ক্রিয় করার সর্বোত্তম উপায় কোনটি (যাতে এটি বিরোধ হয় না)?

উত্তর:


8

যখন কোনও নতুন ডিভাইস উপস্থিত হয়, ইউদেবকে অবহিত করা হয়। এটি সাধারণত /devঅন্তর্নির্মিত নিয়মগুলির উপর ভিত্তি করে একটি ডিভাইস ফাইল তৈরি করে ¹ আপনি ডিভাইসের ফাইলের অবস্থান পরিবর্তন করতে বা একটি স্বেচ্ছাসেবী প্রোগ্রাম চালাতে এই বিধিগুলিকে ওভাররাইড করতে পারেন। এখানে যেমন একটি udev নিয়ম একটি নমুনা:

KERNEL=="sd*", ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="123456789", NAME="keepass/s%n", RUN+="/usr/local/sbin/keepass-drive-inserted /dev/%k%n"

NAME=নির্দেশ ডিভাইস ফাইলের অবস্থান পরিবর্তন, আমি এটা চিত্রণ উদ্দেশ্যে জন্য অন্তর্ভুক্ত কিন্তু এটি সম্ভবত আপনার ব্যবহার কেস জন্য দরকারী নয়। ATTRSনিয়ম ডিভাইস চিহ্নিত; udevinfo -a -n /dev/sdzড্রাইভটি উপলব্ধ থাকলে /dev/sdzএটিতে কী কী বৈশিষ্ট্য রয়েছে তা চালান । সাবধান থাকুন যে আপনি কেবল ইনপুটটির ATTRSএকক বিভাগ থেকে বিধিগুলি ব্যবহার করতে পারেন udevinfo(এছাড়াও, আপনি ATTRপ্রাথমিক বিভাগ থেকে নিয়ম ব্যবহার করতে পারেন )। দেখুন `udevadm তথ্য -a -n, / dev / sdb` আউটপুট বুঝুন আরো পটভূমির জন্য। এই নিয়মটি এমন কোনও ফাইলে যায় যা কিছু বলে /etc/udev/rules.d/local-storage-keypass.rules

RUNনির্দেশে প্রদত্ত স্ক্রিপ্টে আপনি যে কমান্ডগুলি চালাতে চান তা রাখুন । কিছুটা এইরকম:

#!/bin/sh
set -e
if [ -d /media/keypass-drive ]; then
  [ "$(df -P /media/keypass-drive | awk 'NR==2 {print $1}')" = "$(df -P /media | awk 'NR==2 {print $1}')" ]
else
  mkdir /media/keypass-drive
fi
mount "$1" /media/keypass-drive
su ereon -c 'keypass2' &

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

¹ না আধুনিক সিস্টেমে যেখানে /devudevtmpfs চালু আছে।


1
এটির জন্য গুরুত্বপূর্ণ নোট: তথ্যটি ব্যবহার করে বিধিগুলি লেখার সময় udevadm info -a -n /dev/sdX, আপনি একাধিক পূর্বপুরুষের উপর ভিত্তি করে মেলতে পারবেন না। আপনি কেবলমাত্র ডিভাইস থেকে প্রাপ্ত ডেটা এবং একক পূর্বপুরুষের ভিত্তিতে মিল করতে পারেন। এটি আচ্ছাদিত man 7 udev, তবে এটি একটি ছোট মন্তব্য সহজেই উপেক্ষা করা হয়।
প্যাট্রিক

1

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


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