রুট সুযোগ-সুবিধাগুলি ব্যতীত আপনি সাধারণ ব্যবহারকারী হিসাবে যা চান তা কম বেশি মাউন্ট করা খুব সহজ, যদি সঠিক প্রবেশিকাটি তৈরি করা হয়ে থাকে /etc/fstab।
অবশ্যই, /etc/fstabরুট সুবিধার জন্য প্রয়োজনীয় পরিবর্তনগুলি ifications তবে (ইউ) বিভিন্ন মাউন্ট পয়েন্টে অনেকগুলি পৃথক ফাইল মাউন্ট করার জন্য আরও নমনীয়তা সহ একটি একক এন্ট্রি ব্যবহার করা যেতে পারে, কোনও পরবর্তী সম্পাদনা ছাড়াই /etc/fstab।
এখানে দুটি খুব সংক্ষিপ্ত (5 লাইন + মন্তব্য) বাশ স্ক্রিপ্টগুলি কাজ করবে:
মাউন্ট জন্য
#!/bin/sh
# usage: usmount device dir
# author: babou 2013/05/17 on https://unix.stackexchange.com/questions/32008/mount-an-loop-file-without-root-permission/76002#76002
# Allows normal user to mount device $1 on mount point $2
# Use /etc/fstab entry :
# /tmp/UFS/drive /tmp/UFS/mountpoint auto users,noauto 0 0
# and directory /tmp/UFS/
# Both have to be created (as superuser for the /etc/fstab entry)
rm -f /tmp/UFS/drive /tmp/UFS/mountpoint
ln -s `realpath -s $1` /tmp/UFS/drive
ln -s `realpath -s $2` /tmp/UFS/mountpoint
mount /tmp/UFS/drive || mount /tmp/UFS/mountpoint
# The last statement should be a bit more subtle
# Trying both is generally not useful.
এবং বরখাস্ত করার জন্য
#!/bin/sh
# usage: usumount device dir
# author: babou 2013/05/17 on https://unix.stackexchange.com/questions/32008/mount-an-loop-file-without-root-permission/76002#76002
# Allows normal user to umount device $1 from mount point $2
# Use /etc/fstab entry :
# /tmp/UFS/drive /tmp/UFS/mountpoint auto users,noauto 0 0
# and directory /tmp/UFS/
# Both have to be created (as superuser for the /etc/fstab entry)
rm -f /tmp/UFS/drive /tmp/UFS/mountpoint
ln -s `realpath -s $1` /tmp/UFS/drive
ln -s `realpath -s $2` /tmp/UFS/mountpoint
umount /tmp/UFS/drive || umount /tmp/UFS/mountpoint
# One of the two umounts may fail because it is ambiguous
# Actually both could fail, with careless mounting organization :-)
/tmp/UFS/লিঙ্কগুলি বিচ্ছিন্ন করতে এবং সংঘর্ষ এড়াতে ডিরেক্টরিটি তৈরি করা হয়েছে। তবে একই জায়গায় (একই পথে) যতক্ষণ থাকেন ততক্ষণ সিমলিংকগুলি ব্যবহারকারীর জায়গার যে কোনও জায়গায় থাকতে পারে। /etc/fstabএন্ট্রিতে হয় না পরিবর্তন।
গুরুত্বপূর্ণ সতর্কতা:
ভাল সুরক্ষার কারণে মাউন্টটি সীমাবদ্ধ। এটিকে আরও নমনীয় করে তোলা দূষিত সফ্টওয়্যারটির দরজা উন্মুক্ত করতে পারে। আমি কোনও সুরক্ষা বিশেষজ্ঞ নই এবং আমি সুপারিশ করব যে আপনি দরজাগুলি একেবারে প্রয়োজনের বাইরে না খোলেন ... ফাইল সিস্টেমগুলি যা এইভাবে মাউন্ট করা যায় তার সাথে কী করা যায় তা সীমাবদ্ধ করার জন্য বিকল্পগুলি ব্যবহার করে। যদি কোনও জ্ঞানী অবদানকারী সুরক্ষা সংক্রান্ত বিষয়ে আরও মন্তব্য করতে পারে তবে এটি কার্যকর হতে পারে।
মাউন্ট করা ফাইল সিস্টেমের ব্যবহারকে সীমাবদ্ধ করার জন্য বিভিন্ন বিকল্প উপলব্ধ যেমন যেমন noexecবাইনারিগুলি কার্যকর করা বাধা দেয় nosuidএবং এর ফলে সুরক্ষায় অবদান রাখে। প্রকৃতপক্ষে, এই বিকল্পগুলি ডিফল্ট বিকল্প হিসাবে যুক্ত করা হয় যখন বিকল্পগুলি ব্যবহার করা হয় userবা usersব্যবহৃত হয়, যা আমরা নীচে যা করি তা অবশ্যই প্রয়োজন case আপনি এই ডিফল্টগুলি ওভাররাইড করার আগে দু'বার ভাবেন। http://en.wikipedia.org/wiki/Fstab
আরও সুরক্ষার জন্য অন্যান্য বিকল্প যুক্ত করা যেতে পারে। উদাহরণস্বরূপ, বিকল্প owner মধ্যে /etc/fstab এন্ট্রি শুধুমাত্র ব্যবহারকারীরা ফাইল বা ডিভাইসের তারা মালিক সাথে মোকাবিলা দেওয়া হবে। man mount বিকল্পগুলির একটি তালিকা দেখুন : http://linux.die.net/man/8/mount ।
এই /etc/fstabএন্ট্রিটির ব্যবহার সিমলিংকযুক্ত ডিরেক্টরি (বা ডিরেক্টরিগুলি) এর ব্যবহার.গ্রুপের মালিকানার মাধ্যমেও সীমাবদ্ধ হতে পারে।
ব্যাখ্যা
আমি উপরের দুটি স্ক্রিপ্টগুলিতে জিনিসগুলি সহজ করতে পারি বুঝতে পেরে এই ব্যাখ্যাটি লেখা হয়েছিল। আমি এখনই আংশিকভাবে সেগুলি সম্পর্কে ভাবিনি কারণ আমার হাতে আরও একটি জটিল সমস্যা রয়েছে যা তারা কোনও অতিরিক্ত যন্ত্রপাতি ছাড়াই সমাধান করে না। সুতরাং আমার ব্যাখ্যাটি যতটা হওয়া উচিত তার চেয়ে কিছুটা জটিল হতে পারে তবে এগুলি আবার স্ক্র্যাচ থেকে পুনরায় লেখার মতো সাহস আমার নেই।
মৌলিক ধারণাটি হ'ল এন্ট্রিগুলি তৈরি করা যাতে /etc/fstabবিকল্পটি অন্তর্ভুক্ত থাকে userবা usersযাতে কোনও ব্যবহারকারী mountমাউন্ট করার জন্য ফাইলটি বা মাউন্ট পয়েন্টটি ব্যবহার করার জন্য যুক্তি দিয়ে এই এন্ট্রিগুলিতে নির্দিষ্ট মাউন্টিং করতে জিজ্ঞাসা করতে পারে (তবে উভয়ই আমার সার্থকতায় নয়) ।
আপনারও সঠিক প্রবেশের প্রয়োজন umount(যা কিছুটা আলাদা সমস্যা - নীচে দেখুন)। বিকল্প userসাধারণত বেশী ভালো usersযেহেতু এটি করার অনুমতি সীমিত umountব্যবহারকারী যে ফাইল-সিস্টেম মাউন্ট, যখন থেকে usersযে সব করার অনুমতি দেবে। দুর্ভাগ্যক্রমে বিকল্পটি userসর্বদা কাজ করে না এবং কাজ করার জন্য কিছু অন্যান্য পদক্ষেপ জোর দিতে পারে। এটি মাউন্টের জন্য অপশন "ব্যবহারকারী" কাজের ক্ষেত্রে আলোচনা করা হয়েছে , অমোটের জন্য নয় ।
প্রথমে আপনি /etc/fstabএন্ট্রি যুক্ত করুন যেমন:
/tmp/UFS/drive /tmp/UFS/mountpoint auto users,noauto, 0 0
এবং /tmp/UFS/driveআপনি মাউন্ট করতে ইচ্ছুক যে কোনও ডিভাইস বা ফাইলের সাথে প্রতীকী লিঙ্ক (বা সিমলিংক) হিসাবে ব্যবহার করুন , কোনও আইএসও ফাইল সিস্টেমের চিত্রযুক্ত একটি ফাইল বলুন /home/johndoe/john-image-file.iso।
আপনি /tmp/UFS/mountpointযে মাউন্ট পয়েন্টটি ব্যবহার করতে চান তার একটি সিমিলিংক হিসাবে সংজ্ঞায়িত করেছেন, বলুন /mnt/iso।
তারপরে আপনি john-image-file.isoকমান্ডটি দিয়ে মাউন্ট করতে পারেন :
$ mount /tmp/UFS/drive
এটি আমার ম্যাজিয়া লিনাক্সে যথেষ্ট, যেহেতু লুপ ডিভাইসগুলির ব্যবহার এখন অন্তর্নিহিত করা হয়েছে এবং এখন আর -o loopস্পষ্টভাবে ব্যবহার করার প্রয়োজন নেই । জানি না আজ কতটা সাধারণ। মাউন্টিংয়ের সময় দেখুন
, কখন লুপ ডিভাইস ব্যবহার করা উচিত?
এই মাউন্টটি টেবিল এবং কমান্ডগুলিতে প্রদর্শিত হবে:
$ df | tail -1
/dev/loop0 5,1G 5,1G 0 100% /mnt/iso
$ tail -1 /etc/mtab
/dev/loop0 /mnt/iso udf ro,nosuid,nodev,noexec,relatime,utf8 0 0
$ mount | tail -1
/home/johndoe/john-image-file.iso on /mnt/iso type udf (ro,nosuid,nodev,noexec,relatime,utf8)
$ tail -1 /proc/mounts
/dev/loop0 /mnt/iso udf ro,nosuid,nodev,noexec,relatime,utf8 0 0
$ tail -1 /proc/self/mountinfo
46 22 7:0 / /mnt/iso rw,nosuid,nodev,noexec,relatime - udf /dev/loop0 ro,utf8
$ tail -1 /proc/self/mountstats
device /dev/loop0 mounted on /mnt/iso with fstype udf
মাউন্টিং অপারেশন যে কোনও ফাইল বা ড্রাইভের জন্য কাজ করতে পারে এবং কেবলমাত্র /tmp/UFS/driveসেই ফাইল থেকে বা ড্রাইভের জন্য ডিভাইসে প্রতীকী লিঙ্ক তৈরি করতে হবে । অবশ্যই, অন্য নাম এবং অবস্থান প্রতীকী লিঙ্কের জন্য বেছে নেওয়া যেতে পারে, যতক্ষণ না এটি কখনও পরিবর্তন হয় না।
ফাইলটি খারিজ করা প্রতীকী লিঙ্কগুলির যথাযথ ব্যবহারের উপর একইভাবে নির্ভর করে। কিছু হারওয়ার ড্রাইভের সাথে সম্পর্কিত কোনও সাধারণ ডিভাইসের ক্ষেত্রে, আপনি কেবল একই লিঙ্কগুলি ব্যবহার করেন।
তবে কোনও ফাইল সিস্টেমের চিত্রযুক্ত ফাইলগুলি একটি বিশেষ ধরণের ডিভাইসের মাধ্যমে একটি লুপ ডিভাইস হিসাবে মাউন্ট করা হয়, যখন আপনি ফাইলটি মাউন্ট করবেন তখন স্বয়ংক্রিয়ভাবে বরাদ্দ।
ফাইলটি বরখাস্ত করার জন্য আপনাকে ফাইলটি নয়, লুপ ডিভাইসটি উল্লেখ করতে হবে। অতএব আপনার /etc/fstabএন্ট্রি প্রয়োজন যা /etc/mtabএখানে ব্যবহৃত লুপ ডিভাইস /dev/loop0এবং এখানে মাউন্ট পয়েন্ট
উভয়ের সাথে মেলে /mnt/iso।
লুপ ডিভাইসটি ভিন্ন হতে পারে, কারণ এগুলি গতিশীলভাবে বরাদ্দ করা হয় আপনি আগাম এ জাতীয় এন্ট্রি তৈরি করতে পারবেন না। মনে রাখবেন যে একটি নির্দিষ্ট লুপ ডিভাইস ব্যবহার করাও সম্ভব, তবে এটি অন্যান্য উপায়ে অসুবিধে হয়। Http://igurublog.wordpress.com/2011/01/22/how-to-ille-mounting-of-iso-files-by-a-regular-user/ দেখুন
( এই ব্লগটি এখানে উত্তরটি অনুপ্রাণিত করেছে )।
তবে, আপনি এখানে লুপ ডিভাইসের নামটি /dev/loop0সিস্টেমটি জিজ্ঞাসা করে খুঁজে পেতে পারেন , যেমন আমরা উপরে বিভিন্ন পদ্ধতিতে করেছি। তারপরে আমাদের স্ট্যান্ডার্ড /etc/fstabএন্ট্রিটি সিএমলিংকের মাধ্যমে ডান লুপ ডিভাইসে /tmp/UFS/driveএবং পূর্বের মতো মাউন্ট পয়েন্টে নির্দেশ করতে পারে /tmp/UFS/mountpoint। এটি হয়ে গেলে, ফাইলটি নিম্নলিখিত যে কোনও আদেশের সাথে খারিজ করা যেতে পারে (শর্ত থাকে যে কোনও দ্ব্যর্থতা নেই /etc/mtabযা একটি ভিন্ন সমস্যা):
$ umount /tmp/UFS/drive
$ umount /dev/loop0
$ umount /mnt/iso
$ umount /tmp/UFS/mountpoint
যেহেতু দুটি সিমলিংকের প্রয়োজন কেবল তখনই কমান্ড জারি করা হয়, তাই এগুলি পরিবর্তনশীলভাবে পরিবর্তন করা যেতে পারে। সুতরাং আমাদের একক /etc/fstabএন্ট্রি কোনও সংখ্যক ফাইল মাউন্ট করার অনুমতি দেয় এবং মূল সুযোগ ছাড়াই যেকোন ক্রমে এটিকে মাউন্ট করে।
অন্যান্য উল্লেখ:
mountবাইনারিটির জন্য SID অনুমতিগুলির প্রয়োজন না হয় তবে আপনার কোনও সমস্যা ছাড়াই ফেককারুট ব্যবহার করতে সক্ষম হওয়া উচিত ।