أدوات المطور · حاسبة Chmod
حياتيان للبت اللاصق: من النص المقيم في المبادلة إلى /tmp
· خلفية
chmod يونيكس التحكم في الوصول
كان الحرف t في الوضع /tmp's يعني شيئًا مختلفًا تمامًا في نظام Unix في السبعينيات. يتبع هذا المنشور الجزء الثابت من تلميح الأداء إلى قاعدة الحذف ويشرح ما يفعله اليوم.
drwxrwxrwt على /tmp - الحرف الأخير ليس r أو w أو x، والتفسير المعتاد المكون من كلمة واحدة لا يفسر شيئًا
توضح السلسلة drwxrwxrwt لماذا لا يمثل حساب rwx العادي القصة بأكملها. الثابت هو 1000 bit، الذي تم تقديمه في موضع التنفيذ النهائي. مع وجود التنفيذ الآخر، يكون الحرف صغيرًا t؛ وبدون ذلك، يظهر الحرف T الكبير. وبالتالي فإن إدخال 1777 ينتج عنه rwxrwxrwt، بينما يحتفظ الملخص المكون من أربعة أرقام برقم البت الخاص البادئ.
تقوم هذه الشاشة بتحويل الوضع المتوفر؛ ولا يقوم بفحص الدليل. تقوم الصفحة بتقسيم قيمة واحدة إلى أجزاء مالك والمجموعة وأجزاء أخرى وخاصة، ثم تعيد بناء كل عرض من تلك الأجزاء. تتحقق اتفاقيتهم من الحساب، وليس الملكية، أو قوائم ACL، أو سياسة نظام الملفات. يظل الأمر chmod الذي تم إنشاؤه نصًا عاديًا حتى يقوم شخص ما بتشغيله في مكان آخر.
المعنى الأصلي — احتفظ بجزء نص البرنامج في حالة تبديل بعد الخروج حتى يبدأ التشغيل التالي بشكل أسرع على الأقراص البطيئة
يقول تفسير الملف العادي أن Sticky طلب مرة واحدة أن يظل نص البرنامج قيد التبديل. هذا هو الادعاء التاريخي الكامل الذي تدعمه هذه المصادر. لم يستشهدوا بأي دليل أو تاريخ أو نظام مسمى أو مقياس اعتماد لنظام Unix أساسي. يمكن للحساب الدقيق أن يقارن معنى الملف السابق بسلوك الدليل الحالي دون اختراع سجل أوسع لنظام التشغيل.
تحدد الآلة الحاسبة كيفية تمثيل البت. يحتل Sticky الرقم الثماني 1000 ويشارك موضع التنفيذ الآخر بالتدوين الرمزي. وبالتالي فإن 1777 ينتهي بـ t لأنه تم ضبط التنفيذ، بينما ينتهي 1644 بـ T لأنه غائب. تدعم أقنعة البت والمحلل اللغوي والعارض والاختبارات ذهابًا وإيابًا هذه الحقائق، وليس التسلسل الزمني لسلوك النواة.
يصف المصدر تلميحًا سابقًا للملف ولكنه لا يوفر أي اقتباس أساسي للتاريخ
بالنسبة للملفات العادية، تصف الأداة الملصق بأنه تلميح مبادلة تاريخي تتجاهله النوى الحديثة. لا ينبغي أن تصبح الصياغة مطالبة عالمية حول كل نواة أو نظام ملفات. يقدم هذا المستودع شرحًا للآلة الحاسبة، وليس استطلاعًا للنظام الأساسي. النقطة التي يمكن الدفاع عنها أضيق: لا يغير اللاصق منح القراءة أو الكتابة أو التنفيذ المعروضة لملف عادي.
ويظل التمثيل دقيقًا حتى في حالة عدم المطالبة بالإنفاذ. مع مجموعة التنفيذ الأخرى، الحرف الأخير هو t؛ بدونه، يكون هذا الحرف هو T. ويستعيد المحلل اللغوي أيًا من النموذجين إلى البت الثابت، وتغطي الاختبارات 1777، و1644، وكل وضع من خلال 7777. لا شيء يقوم بتشغيل البرامج، أو تحميل أنظمة الملفات، أو الاستعلام عن النواة لمعرفة السلوك الفعلي.
يقول تفسير الملف العادي أن النوى الحديثة تتجاهل اللزوجة؛ لم يتم تقديم أي مطالبة عالمية
سلوك الدليل هو الاستخدام الحديث الذي يشرحه التنفيذ مباشرة. في دليل مشترك، يضيف اللاصق قيودًا على الحذف وإعادة التسمية: يمكن للأشخاص إنشاء إدخالات، ولكن الإزالة تقتصر على مالك الإدخال أو جذره. تلتقط الإعدادات المسبقة 1777 كنمط /tmp، بينما يحذر الشرح عندما يكون الدليل قابلاً للكتابة من قبل الجميع دون التصاق.
تكشف الشاشة هذا التمييز دون المطالبة بفحص /tmp. يشترك الوضعان 777 و1777 في الأذونات العادية rwxrwxrwx. تؤدي إضافة 1000 إلى تغيير الرمز النهائي x إلى t وإلحاق +t بالمهام التي تم إنشاؤها. المالك والمجموعة والمنح الأخرى تبقى دون تغيير؛ تظل الملكية الحقيقية وقوائم ACL وقواعد نظام الملفات خارج الحساب.
السلوك اللزج للدليل هو التفسير الحالي المطبق
تنص جملة الدليل على قاعدة محدودة: مع المجموعة اللاصقة، لا يجوز إلا لمالك الملف أو جذره حذفه أو إعادة تسميته. لا تقوم الأداة بتحليل الهويات أو فحص ملكية الدليل أو محاولة إجراء عملية. يؤكد 1777 المعروض على وحدات بت rwx العامة بالإضافة إلى أنها مثبتة، ولكن لا يمكنه تحديد من يملك الإدخال المتورط في نزاع حقيقي.
يجب التحقيق في السياسة الإضافية بشكل منفصل. لا تقرأ الآلة الحاسبة قوائم ACL أو الإمكانيات أو خيارات التثبيت أو عناصر التحكم الإلزامية أو حالة نظام الملفات. التبديل بين الملف والدليل يغير الشرح، وليس الوضع. إذا نجحت عملية إعادة التسمية أو فشلت بشكل غير متوقع، فلن تتمكن الصفحة من توضيح السبب؛ فهو يعزل البتات التقليدية فقط لإجراء تحقيق خاص بالنظام.
تصف الأداة حدود حذف المالك أو الجذر دون فحص امتدادات السياسة
قارن بين 1777 و777 كوضعي دليل. يعرض الوضع 777 drwxrwxrwx ويسمح لكل فئة بإدراج وإنشاء وإدخال وإعادة تسمية وحذف. تحذر الأداة من أن المستخدمين قد يقومون بحذف الإدخالات التي لا يملكونها. يؤدي تمكين الثبات إلى إنتاج drwxrwxrwt: تظل منح rwx ثابتة، بينما يدخل تقييد حذف المالك أو الجذر في الشرح.
تُظهر المهام التي تم إنشاؤها نفس الاختلاف بمقدار بت واحد. يصبح الوضع 777 u=rwx,g=rwx,o=rwx، بينما يضيف 1777 +t؛ تحتفظ المعاينة الثماني أيضًا بالرقم البادئ. لا تفتح أي من المعاينة المسار أو تنفذ chmod. تثبت المقارنة أن 1000 فقط هو الذي تغير ويشرح شكله، ولكن الملكية والتنفيذ لا يزالان يتطلبان فحصًا خارجيًا.
مثال عملي: قارن بين تفسيرات 1777 و777 في الآلة الحاسبة
سجل Setgid غير مدعوم بهذه المواد. يمكن للمستودع تشفير setgid كـ 2000، وتقديم s أو S في موضع تنفيذ المجموعة، وشرح وراثة مجموعة الدليل. تفاصيل التنفيذ هذه لا توثق أصول setgid أو تربط تطورها بـ Sticky. إن الحساب لجزء معين ليس دليلاً تاريخيًا لجزء آخر.
تقع سياسة الدليل المحمي أيضًا خارج مجموعة المصدر. لا تقرأ الصفحة أي إعداد fs.protected أو تكوين النظام أو ACL أو سجل الملكية أو محاولة التشغيل. يمكنه التأكد من أن الوضع المتوفر يحتوي على لاصق وإظهار منحه الأساسية، لكن لا يمكنه التأكد من أن الوضع اللاصق هو القيد الوحيد للجهاز. يحتاج التشخيص الأوسع إلى أدلة من تلك البيئة.
يظل سجل Setgid وسياسة الدليل المحمي خارج المجموعة المصدر
والتمييز العملي يتناسب مع شخصية واحدة. بالنسبة للأدلة، يسجل t ثابتًا مع تنفيذ آخر، بينما يسجل T ثابتًا بدون بت التنفيذ هذا. تحتفظ الآلة الحاسبة بكلا النموذجين وتبقي 1000 مرئيًا في ملخصها. يذكر مصدرها أيضًا تلميحًا سابقًا للملف العادي، لكنه يقدم القليل جدًا من الأدلة الأولية لدعم التسلسل الزمني التاريخي العالمي.
استخدم الصفحة لتسوية التمثيل قبل مناقشة السياسة. أدخل الوضع، واختر الملف أو الدليل، وقارن بين النظام الثماني والرمزي والمصفوفة والملخص والواجبات. تؤكد الاتفاقية إجراء تحويل ثابت من اثني عشر بت. توقف عند هذا الحد ما لم يقدم النظام المستهدف مزيدًا من الأدلة: لا تحدد الأداة أي مستخدمين، ولا تقرأ أي مسار، ولا تنفذ أي أمر، ولا تفحص أي امتدادات للسياسة.