কেন "ls" কমান্ডটি FAT32 পার্টিশনে ফাইলগুলির অনুমতি প্রদর্শন করছে?


40

আমি বিশ্বাস করি যে FAT32 ফাইল সিস্টেম ফাইল অনুমতিগুলি সমর্থন করে না, তবে আমি যখন ls -lFAT32 পার্টিশনটি করি তখন ls -lদেখায় যে ফাইলগুলির অনুমতি রয়েছে:

-rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt
-rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt

ls -lফাইলের অনুমতিগুলি কেন প্রদর্শিত হচ্ছে ?


ভাল প্রশ্ন! স্বাগতম
0xSheepdog

উত্তর:


71

ডিস্কে সঞ্চিত ফাইল-সিস্টেম ফাইলের অনুমতি সংরক্ষণ করে না, তবে ইউনিক্স ফাইল-সিস্টেম ধারণার একটি অবিচ্ছেদ্য অংশ এবং ফাইল কল ইন্টারফেসের অনুমতি রয়েছে এমন উপস্থাপনের কোনও উপায় নেই বলে ফাইল সিস্টেম ড্রাইভার তাদের অপারেটিং সিস্টেমে সরবরাহ করতে হবে অনুপস্থিত।

এছাড়াও বিবেচনা করুন যদি কোনও ফাইলের কোনও অনুমতি বিট না থাকে তবে কী হবে? এটি কি একই হবে 0777, অর্থাত্ সকলের অ্যাক্সেস; বা হিসাবে একই 0000, অর্থাত্ কারও অ্যাক্সেস নেই? কিন্তু উভয় হয় ফাইল অনুমতি কেন তাদের দেখানোর না? বা আরও কার্যকর কিছু করুন এবং কিছু বুদ্ধিমান অনুমতি সেট করার উপায় রয়েছে।

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

চর্বি জন্য মাউন্ট বিকল্পসমূহ
(দ্রষ্টব্য: ফ্যাট পৃথক ফাইল সিস্টেম নয়, তবে এমএসডোস, umsdos এবং vfat ফাইল সিস্টেমের একটি সাধারণ অংশ))

uid=valueএবং gid=value
সমস্ত ফাইলের মালিক এবং গ্রুপ সেট করুন Set (ডিফল্ট: বর্তমান প্রক্রিয়ার ইউআইডি এবং জিআইডি))

umask=value
উমাস্ক সেট করুন (যে অনুমতি নেই তার বিটমাস্ক)। ডিফল্ট হ'ল বর্তমান প্রক্রিয়ার উমাস্ক। মান অষ্টালে দেওয়া হয়।

dmask=value
শুধুমাত্র ডিরেক্টরিতে প্রয়োগ করা উমাস্ক সেট করুন। ডিফল্ট হ'ল বর্তমান প্রক্রিয়ার উমাস্ক। মান অষ্টালে দেওয়া হয়।

fmask=value
কেবল নিয়মিত ফাইলগুলিতে প্রয়োগ করা উমাস্ক সেট করুন। ডিফল্ট হ'ল বর্তমান প্রক্রিয়ার উমাস্ক। মান অষ্টালে দেওয়া হয়।

নোট করুন যে অনুমতিগুলি মুখোশ হিসাবে উপস্থাপিত হয়, সুতরাং চূড়ান্ত অনুমতিগুলি হ'ল মুখোশটিকে অস্বীকার করা। fmask=0133সমস্ত ফাইলের অনুমতি সহ ফলাফল 0644, বা rw-r--r--

এছাড়াও, ডিফল্টগুলি প্রক্রিয়া কলিং থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয় mount(), সুতরাং আপনি যদি mountকমান্ড লাইন থেকে কল করেন তবে শেলটি umaskপ্রযোজ্য হবে।


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

4
@ জামেস্কেফ, হ্যাঁ, এমনকি সিস্টেম কল ইন্টারফেসেও "অনুমতি না থাকার" বিকল্প নেই, যেহেতু অনুমতিগুলি সর্বদা ছিল। (আমি যখন এটি লিখছিলাম তখন সেগুলিই আমি ভাবছিলাম যে তারা একটি "অবিচ্ছেদ্য অঙ্গ"।) সুতরাং, অনুমতিগুলি সর্বদা সেখানে থাকবে এবং এসিএলের মতো জিনিসগুলি যাতে তাদের অর্থবহ রাখার জন্য তৈরি করা হয়।
ইলক্কাচু

2
আমি সাধারণত FAT ফাইল সিস্টেমে সমস্ত ফাইলের জন্য মোড 7 777 দেখেছি (কমপক্ষে একটি পুরানো ড্রাইভার সহ FAT16)।
বন

2
@ আগে যা umaskমাউন্ট বিকল্পের উপর নির্ভর করে , যার জন্য ডিফল্ট মান mountপ্রক্রিয়াটির উমাস্ক (এই উত্তরের সাথে লিঙ্কিত ম্যান পৃষ্ঠাটি দেখুন)।
রুসলান

কিন্তু মোটা করে , কিছু অনুমতি / বৈশিষ্ট্যাবলী (শুধুমাত্র পাঠযোগ্য লুকানো, সিস্টেম, ইত্যাদি) সংরক্ষণ এমনকি যদি তারা ইউনিক্স জনকে ঠিক মানচিত্র না। chmod ugo-wএকটি ফাইলে কেবল-পঠনযোগ্য বৈশিষ্ট্যটি চালু করা হবে। fmask=0133আপনার উদাহরণ হিসাবে বিকল্পটি ব্যবহার করার ফলে সমস্ত ফাইলের 0644 এর অনুমতি থাকা হবে না । যা FAT একেবারে সঞ্চয় করে না তা হ'ল প্রতিটি ফাইলের জন্য একটি uid এবং একটি গ্রিড। পরিষ্কার করে বলো; উত্তর হিসাবে দাঁড়িয়ে এটি অত্যন্ত বিভ্রান্তিকর।
মোশি

22

তবে ফাইলগুলির অনুমতি রয়েছে। ব্যবহারকারী জনের আরডাব্লু অ্যাক্সেস রয়েছে, তবে কিছু এলোমেলো ব্যবহারকারীর কেবল পঠনের অ্যাক্সেস রয়েছে। এই অনুমতিগুলি ফাইল সিস্টেম থেকে নিজেই আসে নি বরং মাউন্ট অপশনগুলি (-o uid / gid / umask) থেকে আসে, যা এগুলিকে কোনও কম বাস্তব করে তোলে না।

আপনি বিভিন্ন বিকল্পের সাথে একাধিক ভিফ্যাট পার্টিশন মাউন্ট করতে পারেন এবং এই বিকল্পগুলি কী তা নির্ধারণ করতে আপনি l ব্যবহার করতে পারেন । এমনকি আপনি একক ডিরেক্টরিতে বিভিন্ন ভিএফএটি পার্টিশন থেকে ফাইল ধারণ করতে মাউন্ট - বাইন্ড ব্যবহার করতে পারেন এবং ls প্রতিটি ফাইলের জন্য কী অনুমতি নির্দিষ্ট করে তা সঠিকভাবে প্রদর্শন করবে show


15

lsFAT32 সম্পর্কে জানেন না, এটি কেবল POSIX open/ readdir/ statসিস্টেম কলগুলির সাহায্যে কার্নেল দ্বারা প্রকাশিত ভার্চুয়াল ফাইল সিস্টেম (ভিএফএস) ইন্টারফেস সম্পর্কে জানে ।

লিনাক্স ফাইল ধারণা সমর্থন করে না হবে না ব্যবহারকারী / গ্রুপ / অন্যান্য অনুমতি বিট, struct statকেবল একটি রয়েছে mode_t st_mode;সদস্য (এবং ইউআইডি, gid সদস্য) যে কার্নেল আবশ্যক পূরণ যখন ls -lতোলে stat(2)সিস্টেম কল।

এখানে কোনও বিশেষ কোড নেই যার অর্থ সেই ক্ষেত্রগুলির কোনওটির জন্য "উপলব্ধ নয়" বা "প্রযোজ্য নয়", তাই কার্নেলের vfat ড্রাইভারকে অবশ্যই কিছু তৈরি করতে হবে। FAT16 / FAT32 এর কেবল পঠনযোগ্য পতাকা রয়েছে তবে অন্যথায় মালিক / গোষ্ঠী মাউন্ট অপশন থেকে আসে এবং তাই একটি উমাস্কও আসে।

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