أدوات المطور · حاسبة Chmod
لماذا يستخدم chmod النظام الثماني: الاختصار الأساسي 8 ومن أين جاء
· خلفية
chmod يونيكس التحكم في الوصول
يبدو الرقم Octal عشوائيًا حتى تلاحظ أن رقمًا واحدًا يحتوي على ثلاث بتات بالضبط. يشرح هذا المنشور التوافق بين القاعدة 8 وrwx، وعادة عصر DEC التي جعلت الرقم الثماني طبيعيًا، واصطلاح الصفر البادئ.
لماذا 755 وليس 493 — نفس الوضع في النظام العشري لا يعني شيئًا لأي شخص، وهناك سبب وراء فوز النظام الثماني
يمكن أن تمثل القيمة العشرية 493 والقيمة الثمانية 755 نفس العدد الصحيح، ولكن 755 تعرض تجميع الأذونات مباشرة. يتوافق كل رقم معروض مع فئة واحدة، وتحتوي كل فئة على ثلاثة اختيارات ثنائية بالضبط. الآلة الحاسبة تعمل وفق هذا التوافق الحسابي؛ لا تحتاج إلى قصة تاريخية لتوضيح سبب إمكانية قراءة النظام الثماني في أوضاع rwx.
أدخل 755 وسيصبح الإخراج rwxr-xr-x. يتلقى المالك 7، والمجموعة 5، وغيرها من 5. سيؤدي تحويل نفس العدد الصحيح إلى تسمية عشرية غير مجمعة إلى إخفاء حدود الفئة تلك. وهذا ما يفسر فائدة التدوين داخل النموذج المطبق دون المطالبة لماذا اعتمده كل أمر أو منصة خارجية.
ثلاث بتات لكل رقم - كيف تقوم القاعدة 8 بتجميع الثنائيات في ثلاثة أضعاف تتوافق تمامًا مع r وw وx
يمتد الرقم ذو القاعدة الثمانية من الصفر إلى سبعة، وهو بالضبط الإجمالي المتاح من ثلاث بتات مستقلة مرجحة 4، 2، و1. خريطة المجموعات بشكل واضح: 0 هو ---، 1 هو --x، 2 هو -w-، 3 هو -wx، 4 هو r--، 5 هو r-x، و6 هو rw-، و7 هو rwx.
وبالتالي فإن ثلاثة أرقام عادية تتماشى مع المالك والمجموعة وغيرهم. بالنسبة إلى 640، الثلاثيات الثنائية هي 110، 100، و000، مما يؤدي إلى rw-r-----. تجعل مصفوفة خانة الاختيار نفس التجميع مرئيًا دون الحاجة إلى تدوين ثنائي. يؤدي تغيير إذن واحد إلى تغيير إجمالي الفصل المقابل والموضع الرمزي المرتبط به فقط.
عادة الأجهزة — تم توثيق الأجهزة DEC التي تم تشغيل Unix عليها في وقت مبكر بالنظام الثماني، لذلك فكر المبرمجون في ذلك بالفعل
لا تقوم مصادر المستودع بإنشاء نسب أجهزة للتدوين الثماني. وهي تحتوي على JavaScript أقنعة بت وقواعد محلل واختبارات وعناصر تحكم في واجهة المستخدم، وليس وثائق للمعالجات السابقة أو بيئات التطوير. إن أي ادعاء بأن ثقافة آلة معينة تسببت في اعتمادها سيحتاج إلى دليل تاريخي يتجاوز الملفات المسموح بها في هذه المقالة.
التفسير المدعوم بالمصدر هو حسابي بدلاً من ذلك. تحتوي ثلاث بتات على ثماني مجموعات محتملة، لذا فإن رقمًا واحدًا مكونًا من ثمانية أرقام يلتقط ثلاثية rwx دون تجاوز حدود الفئة. ويمكن إثبات هذه العلاقة في كل نتيجة للآلة الحاسبة. ويظل صالحًا سواء تم توفير حساب تاريخي أوسع في النهاية من المصادر الأولية أم لا.
لم يتم إنشاء محفوظات الأجهزة بواسطة مصادر المستودع
يقبل المحلل اللغوي عددًا من الأرقام الثمانية ويزيل البادئة الاختيارية 0o. وبالتالي، فإن 644 و0644 و0o644 جميعها تحل بنفس القيمة. يتم رفض الرقمين 8 و9 بتفسير محدد لأنه لا ينتمي أي منهما إلى الأساس الثامن، ولا يتم تخمين النص المشوه في وضع صالح.
يحمل الرقم المهم الرئيسي بتات خاصة بدلاً من فئة عادية أخرى. تمثل أوزانها 4 و2 و1 setuid وsetgid وsticky، بينما تحتفظ الأرقام الزائدة بالمالك والمجموعة وغيرها. يعرض المنسق ثلاثة أرقام عندما لا يتم تعيين بت خاص وأربعة عندما يكون هناك حاجة إلى واحد، ما لم يتم طلب إخراج مكون من أربعة أرقام بشكل صريح.
النماذج البادئة المقبولة ورقم البت الخاص في هذا المحلل اللغوي
تحويل 0644 إلى ثلاثة أضعاف يعطي 6، 4، و4. في النظام الثنائي، تكون هذه 110، و100، و100، وبالتالي فإن النتيجة الرمزية هي rw-r--r--. لقد قرأ المالك وكتب، بينما المجموعة وغيرها قرأوا فقط. يتم اشتقاق كل عرض من نفس العدد الصحيح، مما يسمح بالتحقق المباشر من الاتساق.
عكس العملية يصل إلى نفس النتيجة. ابدأ بـ rw-r--r--، وأضف 4 و2 للمالك، وخذ 4 للمجموعة، وخذ 4 للمجموعة الأخرى. الأرقام هي 644. الصفر الاختياري الذي يقبله المحلل اللغوي لا يضيف بتة خاصة؛ فهو يترك القيمة الرقمية دون تغيير.
لماذا لم يتولى النظام السداسي العشري المسؤولية أبدًا - لا يتم تقسيم رقمين سداسي عشري إلى ثلاث فئات بشكل نظيف
يمكن للنظام السداسي العشري تشفير العدد الصحيح، لكن حدوده المكونة من أربعة أرقام لا تتوافق مع فئات الأذونات المكونة من ثلاثة بتات. هذه مقارنة حسابية، وليست دليلاً على التدوين الذي يفضله الناس تاريخياً. لا تقبل الآلة الحاسبة الإدخال السداسي العشري، وتم تصميم مخرجاتها حول أرقام ثماني ومواضع رمزية وعناصر تحكم منطقية مسماة.
على سبيل المثال، تشغل الأذونات العادية تسع بتات، ويمكن رؤيتها بشكل طبيعي على شكل ثلاث مجموعات ثماني. سيؤدي تجميع نفس البتات إلى أجزاء مكونة من أربع بتات إلى تقسيم فئة rwx عبر حدود الأرقام. وهذا يجعل النظام السداسي العشري أقل شفافية لغرض العرض هذا، ولكن لا يتبع أي ادعاء بشأن الاعتماد أو المعايير أو تاريخ سطر الأوامر من تلك الملاحظة وحدها.
المقارنة السداسية العشرية هي عملية حسابية وليست دليلاً على اعتمادها تاريخيًا
الثوابت المسماة من اللغات الأخرى أو واجهات النظام تقع خارج تطبيق JavaScript هذا. يستخدم المستودع خصائصه الوصفية الخاصة مثل OwnerRead وgroupWrite وotherExecute وsetuid وsetgid وsticky. هذه الأسماء تجعل حساب البت الداخلي قابلاً للقراءة دون التأكيد على التكافؤ لرأس خارجي معين أو API.
ابق ضمن ما يمكن للأداة التحقق منه: القيمة الرقمية للوضع المتوفر، والقيم المنطقية لفئتها، والعرض الرمزي، والشرح، ونص الأمر الذي تم إنشاؤه. لا تقوم صفحة المتصفح بفحص النظام الأساسي المستهدف أو تجميع الثوابت الأصلية. يجب على أي شخص يترجم النتيجة إلى واجهة برمجة أخرى أن يراجع الوثائق الرسمية لتلك الواجهة بشكل منفصل.
ثوابت C المسماة تقع خارج تطبيق JavaScript هذا
يناسب Octal هذه الآلة الحاسبة لأن كل فئة إذن عبارة عن كمية مكونة من ثلاثة بتات وكل رقم ذو قاعدة ثمانية يحمل ثلاث بتات بالضبط. المراسلات مرئية وقابلة للعكس وسهلة الاختبار. تستخدم البتات الخاصة رقمًا رابعًا بنفس النمط 4 و2 و1، بينما تحافظ الرموز s وS وt وT على تفاصيل موضع التنفيذ.
استخدم التدوين كوسيلة مساعدة للمراجعة بدلاً من التعويذة. قم بتقسيم القيمة إلى المالك، والمجموعة، وغيرها، وأي بادئة خاصة؛ التحقق من الحروف والمربعات؛ ثم قرر مدى ملاءمتها من خلال الملكية الحقيقية وأدلة عبء العمل. تشرح العملية الحسابية التجميع بالكامل دون ادعاءات غير مدعومة حول تاريخ الأجهزة أو المعايير أو السياسة العالمية.