মোড মান 0777 এবং 777 এর মধ্যে কোনও পার্থক্য আছে কি?


50

আমি কর্মক্ষেত্রে একটি কোড পরিবর্তন দেখেছি, যেখানে মোডের মানগুলি 777 থেকে 0777 এ পরিবর্তিত হয়ে এনএফএস সেট্যাট্রিক কাজ করতে হয়েছিল। 2 টি মানের মধ্যে পার্থক্য কি?



পিএইচপি অন্তর্নির্মিত এফএস সম্পর্কিত ফাংশনগুলি ব্যবহার করার সময় একই ইস্যু জুড়ে এসেছিল mkdir()0777 বনাম 777
পাঠক

উত্তর:


75

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

0777 (অষ্টাল) == বাইনারি 0b 111 111 111    == অনুমতি rwxrwxrwx   (== দশমিক 511)

777 (দশমিক) == বাইনারি 0b 1 100 001 001== অনুমতি sr----x--x(== অষ্টাল 1411)


14
কেবল পরিষ্কার করার জন্য - আপনি chmodকমান্ডটি যে মানটি পাস করেন তা সর্বদা অষ্টাল হিসাবে ব্যাখ্যা করা হয়। ব্যবহার করা chmod 888একটি ত্রুটি দেয়।
ম্যাটডেম

তবে প্রতিটি অঙ্কটি অষ্টাল, পুরো সংখ্যাটি নয়।
ড্রার ক্লারিস 21

1
অকট্যাল সংখ্যা একটি স্ট্রিং হয় একটি অকট্যাল সংখ্যা। chmodউপসর্গ নির্বিশেষে একটি সংখ্যার যুক্তিকে অষ্টাল হিসাবে ব্যাখ্যা করে। (তবে আসলে সংখ্যাটির কোনও কার্যকারিতা নেই; কেবল অঙ্কগুলি বা বিটগুলি।)
অ্যালেক্সিস

সুতরাং, একটি সি প্রোগ্রামে, আপনি পাস করতে চান 1777, আপনি লিখতে হবে 01777?
ফাহিম মিঠা

1
@ ফাহিম, ঠিক আছে। অক্টাল সি তে 1777লেখা 01777হয় (অথবা আপনি লিখতে পারতেন 1023, যা দশমিক দশমিক একই মানের। তবে করবেন না :-)
অ্যালেক্সিস

4

প্রথম বিটটি স্টিকি বিট http://en.wikedia.org/wiki/Sticky_bit এর জন্য ব্যবহৃত হয়

আপনি যদি 4 টি অঙ্ক ব্যবহার করে অনুমতি সেট করেন তবে প্রথমটি এই বিটটি সেট বা মুছে দেবে।


3
স্টিকি বিট প্রথম বিট নয় তৃতীয়টি। প্রথমটি হল স্যুইড বিট এবং দ্বিতীয়টি স্যাজিড এক। যদি আপনি তিনটি অঙ্ক ব্যবহার করে অনুমতি সেট করেন তবে অনুপস্থিত প্রথম সংখ্যাটি এই তিনটি বিটকেও প্রভাব ফেলবে (যেমন অপসারণ)।
jlliagre

তুমি ঠিক. তবে, "অ্যালেক্সিস দ্বারা প্রদত্ত উত্তরটি ক্রাইিং হয়
আলফ্রেডকম্বের

2
@jlliagre chmod ম্যান পেজ থেকে - "অনুমোদিত অঙ্কগুলি শূন্যস্থান হিসাবে শীর্ষস্থানীয় বলে মনে করা হয়।" এছাড়াও, 4 প্রথম অঙ্ক হয় চটচটে বিট। ম্যান পৃষ্ঠা থেকে আবার: "প্রথম সংখ্যাটি সেট ব্যবহারকারী আইডি (4) এবং গোষ্ঠী আইডি (2) সেট করে এবং মুছে ফেলা বা স্টিকি (1) বৈশিষ্ট্যগুলি সীমাবদ্ধ করে The দ্বিতীয় অঙ্কটি ফাইলটির মালিক যে ব্যবহারকারীর জন্য অনুমতি নির্বাচন করে: পড়ুন (পড়ুন ( ৪), (২) লিখুন এবং (১) কার্যকর করুন; তৃতীয়টি একই মান সহ ফাইলের গ্রুপের অন্যান্য ব্যবহারকারীর জন্য অনুমতি নির্বাচন করে; এবং চতুর্থটি একই মান সহ ফাইলের গ্রুপে নেই অন্য ব্যবহারকারীদের জন্য অনুমতি নির্বাচন করে। "
ফাহিম মিঠা

1
@ ফাহিমমিঠা, বাদ দেওয়া অঙ্কগুলি শীর্ষস্থানীয় শূন্য বলে মনে করা হয় সুতরাং উল্লিখিত বিটগুলি মুছে ফেলা হবে । এছাড়াও, আপনি বিট এবং অঙ্কগুলি বিভ্রান্ত করছেন বলে মনে হচ্ছে, আমি প্রথম বিট সম্পর্কে মন্তব্য করছিলাম, প্রথম সংখ্যাটি নয়।
jlliagre

1
@ জেলিয়াগ্রে ঠিক আছে, যথেষ্ট ন্যায্য।
ফাহিম মিঠা

1

মজার উত্তরটি হ'ল:

  • অন্যান্য উত্তরে বর্ণিত হিসাবে 0700এবং এর মধ্যে কোনও পার্থক্য নেই700
  • কিন্তু হয় মধ্যে একটি পার্থক্য 00700এবং 0700(ডিরেক্টরি জন্য)

অন্তত জিএনইউ কোর্টিলসের chmod সংস্করণের ক্ষেত্রে এটি লিনাক্সের ডিফল্ট।

এই উদাহরণটি দেখুন:

$ ls -ld mydir
drws--s--- 4 myuser mygroup 4096 Jul  8 09:27 mydir
$ chmod 0710 mydir ; ls -ld mydir                   # surprise ahead -- s-bits remain:
drws--s--- 4 myuser mygroup 4096 Jul  8 09:27 mydir
$ chmod 00710 mydir ; ls -ld mydir                  # _now_ they're gone:
drwx--x--- 4 myuser mygroup 4096 Jul  8 09:27 mydir

ডিরেক্টরিগুলির জন্য সেটুইড / সেটগিড বিটের দুর্ঘটনাজনিত মোছা এড়ানো এটাই। বিশদ জন্য, chmod ডকুমেন্টেশন দেখুন।


-1

লিনাক্স সিস্টেমে দুই ধরণের অনুমতি পাওয়া যায়:

  1. ফাইল অনুমতি
  2. বিশেষ অনুমতি

ফাইল অনুমতিতে আমরা ফাইল এবং ফোল্ডারগুলিতে অনুমতি সেট করি:

অনুমতিগুলি হ'ল:

  • পড়া (4)
  • লিখতে (2)
  • চালানো (1)

বিশেষ অনুমতিতে থাকাকালীন তিন ধরণের অনুমতি হ'ল:

  • এর SUID (4)
  • SGID (2)
  • স্টিকি বিট (1)

আপনার প্রশ্নে আপনি কী পার্থক্য জিজ্ঞাসা করেছেন, তাই এর মধ্যে কোনও পার্থক্য নেই chmod 777 and 0777কারণ no any octal valueকোনটি (0) শূন্যের শো মান রয়েছে।

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