লিনাক্সে উমাস্ককে কীভাবে গণনা করা হয়?


15

সুতরাং আমি জানি umaskযে এই ফর্ম্যাটটি ব্যবহার করে সুবিধাভোগী ব্যবহারকারীদের সীমাবদ্ধ করতে পারেন umask ugo

আমি বুঝি যে পঠিত = 4, লেখার = 2, এবং Exec = 1. যাইহোক, যখন আমি টাইপ umask, এটা 4 সংখ্যা যা ফেরৎ 0022বা 0073। অতিরিক্ত অঙ্ক রয়েছে বলে এখন কীভাবে এটি কাজ করে তা আমার কোনও বুদ্ধি নেই। অতিরিক্ত অঙ্কটি কী এবং এর 0022অর্থ কী?

উত্তর:


18

0666 এর ডিফল্ট মাস্কটি ধরুন 00 umask0022 নতুন মুখোশটি 0644 (0666-0022 = 0644) তৈরি করবে যার অর্থ গ্রুপ এবং অন্যরা অনুমতি পড়েছে (কোনও লেখায় বা চালায় না)।

"অতিরিক্ত" অঙ্ক (প্রথম সংখ্যা = 0), নির্দিষ্ট করে যে কোনও বিশেষ মোড নেই।

মোডটি যদি কোনও অঙ্ক দিয়ে শুরু হয় তবে এটি অষ্টাল হিসাবে ব্যাখ্যা করা হবে অন্যথায় এটি প্রতীকী বোঝাতে চেয়েছিল।

0 হল একটি অঙ্ক, যেমন 1 (স্টিকি বিটের জন্য) বা 6 (এসজিআইডি এর জন্য)। একটি কমান্ড যেমন chmodঅন্য পদ্ধতিগুলি দ্বারা কল করা যেতে পারে, যেমন chmod ug+rw mydirআপনি ব্যবহারকারী এবং গোষ্ঠীতে পড়ার এবং লেখার অনুমতিগুলি যুক্ত করবেন। মনে রাখবেন যে এই ক্ষেত্রে মোডটি (ug + rw) কোনও অঙ্ক দিয়ে শুরু হয় না, সুতরাং এটি অষ্টাল হিসাবে বর্ণিত হবে না বরং প্রতীকী হবে।

বিশেষ মোডগুলিতে কিছুটা জন্য এন.ইউইকিপিডিয়া.আর.উইকি / চিডমোড# সিম্বলিক_ উদাহরণগুলির সাথে সাথে www.lifeafterc کافی.com/2007/03/20/spected-permission- modes- in- linux-and-unix/ দেখুন ।

আমি জানি না যে আপনি প্রথম বিটটি মুছে ফেলবেন umask, তবে প্রযুক্তিগতভাবে আপনি এটি করতে পারেন। এটি আপনাকে প্রায় সবসময় কেন শূন্য হিসাবে দেখবে তা ব্যাখ্যা করবে।

ক্রেডিট pinkfloydx33

মাস্কের প্রথম সংখ্যাটি বিশেষ অনুমতিগুলির সাথে সম্পর্কিত যা মালিক / গোষ্ঠী / অন্যান্য মডেলের সাথে এত পরিষ্কারভাবে ফিট করে না। যখন ফাইলের অনুমতি দেওয়ার জন্য চারটি অঙ্ক সরবরাহ করা হয়, প্রথমটি সেই বিশেষ মানগুলিকে বোঝায়:

4000 = SUID
2000 = SGID
1000 = sticky bit

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

সেট-গ্রুপ-আইডির জন্য সংক্ষিপ্ত এসজিআইডি বিটটি খুব সমান, তবে মালিকের কার্যকর গ্রুপ আইডি (গিড) দিয়ে চলে।

স্টিকি বিটটি আরও জটিল, আপনি যদি আরও তথ্যের চান তবে আপনি ম্যানপেজটি পড়তে পারেন sticky

এই বিটগুলি ডিরেক্টরিতেও ব্যবহার করা যেতে পারে তবে এর অর্থ পরিবর্তন হয়।

আমি বিশ্বাস করি না যে আপনি umaskএই অতিরিক্ত বিটগুলির কোনওটিকে ডিফল্টরূপে সক্ষম করার অনুমতি দেওয়ার জন্য আপনি আসলে সেট করতে পারেন তবে আপনি সম্ভবত কখনই সেটি করতে চাইবেন না।

ব্যবহারকারীর কাছে ক্রেডিট 470379


1
প্রকৃতপক্ষে, আপনি শেষ 3 সংখ্যা ব্যতীত অন্য শূন্যের মান সরবরাহ করতে পারবেন না। পিক্সিকের মতে: "মোড মানগুলির ব্যাখ্যা যা ফাইল অনুমতি বিটগুলি ব্যতীত অন্য কোনও ফাইল মোড বিট নির্দিষ্ট করে।" man 2 umask(সংশ্লিষ্ট সিস্টেম কল) এর মতে "কেবলমাত্র ফাইলের অনুমতি বিটগুলি maskব্যবহৃত হয়"। ইন bash, উমাস্ক 1000 ত্রুটি উত্পন্ন করে: "অষ্টাল সংখ্যা সীমার বাইরে"। তাহলে অতিরিক্ত 0 কেন? আমি মনে করি এটি কেবল দেখানোর জন্য যে সংখ্যাটি অষ্টালে রয়েছে।
ধনী

উমাস্কের ক্ষেত্রে পেস্টবিনের কোনও রেফারেন্স নেই, সুতরাং এটি কীভাবে প্রাসঙ্গিক তা আমি দেখতে পাই না। chmod প্রথম তিনটি বিট সেট করার অনুমতি দেয় না, তবে উমাস্ক তাদের মুখোশ পড়তে দেয় না। (অর্থাত্ আপনি লিখতে পারতেন chmod 6777 dropboxAnd এবং, chmod ug+s
যাইহোক

হ্যাঁ, আপনি ঠিক বলেছেন, আমি কী ভাবছিলাম তা জানেন না।
ব্রায়াম

@Braiam: নতুন মাস্ক নিরূপণ করার জন্য আপনার সূত্র ভুল, এটা হচ্ছে না 0666-0022, এটা 0666 & ~0022
cuonglm

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