العربية

أدوات المطور · حاسبة Chmod

نموذج إذن Unix: من chmod في السبعينيات إلى POSIX بتات الوضع

· خلفية

chmod يونيكس التحكم في الوصول

نموذج الوضع التقليدي الموضح كمخطط بت إذن Unix المميز
الرسم التوضيحي المتجه الأصلي ToolAcre

لقد ظل نموذج المالك /group/others موجودًا لعقود من الزمن مع تغييرات قليلة بشكل ملحوظ. يتتبع هذا المنشور مصدره، وما الذي تم توحيده بواسطة POSIX، ولماذا لا يزال يناسب معظم الوظائف.

تصميم من سبعينيات القرن العشرين في عملية نشر في عشرينيات القرن العشرين — لا تزال كل حاوية ومشغل CI يتحدثان rwx، ومن المفيد معرفة السبب

لا تزال عمليات النشر الحالية تقدم أوضاعًا مثل 0644 وسلاسل رمزية مثل rw-r--r--، لكن هذا المستودع ليس أرشيفًا تاريخيًا. دليلها هو التمثيل المطبق: اثني عشر بت، والتحويل الحتمي، والتحقق من صحة المدخلات الثماني والرمزية. تتطلب التواريخ والمخترعون وبراءات الاختراع والمطالبات المتعلقة بكل نظام مشتق من Unix مصادر غير متوفرة هنا.

وبالتالي توفر الآلة الحاسبة عرضًا لزمن المضارع لنموذج الأذونات المضغوط. عدد صحيح واحد يدفع المالك والمجموعة وعناصر التحكم الأخرى بالإضافة إلى setuid وsetgid وsticky. يمكن التحقق من الإخراج في شكل ثماني، رمزي، ومصفوفة. يثبت الاتفاق تحولًا متسقًا، وليس أصل النموذج أو عالميته أو تطبيقه.

يظهر التدوين طويل الأمد في عمليات النشر الحالية، ولكن هذا المستودع ليس مصدرًا للتاريخ

تسع بتات عادية تشكل ثلاث فئات متساوية. يتلقى كل من المالك والمجموعة والآخرين مواضع القراءة والكتابة والتنفيذ بالأوزان 4، و2، و1. تحتفظ الآلة الحاسبة بهذا الترتيب في كل مكان: في الأرقام الثمانية اللاحقة، والصف الرمزي المكون من تسعة أحرف، ومصفوفة مربع الاختيار، والوصف باللغة الإنجليزية البسيطة الذي تم إنشاؤه لملف أو دليل.

يوضح وضع 640 البنية دون المطالبة بالنسب. المالك 6 يعني القراءة والكتابة، والمجموعة 4 تعني القراءة، و0 الأخرى تعني عدم وجود أذونات عادية، مما يؤدي إلى إنتاج rw-r-----. كما توضح المقالة 501، هذه علامات قابلة للحساب؛ ويظل تحديد المالك الفعلي أو المجموعة أو العملية خارج نطاق التحويل.

يحتوي النموذج المطبق على تسع بتات عادية في ثلاث فئات

يتم تنفيذ Setuid كقناع 4000. في الملف العادي، يقوم العارض بوضع s في موضع تنفيذ المالك عند وجود كل من setuid ومالك التنفيذ. إذا كان setuid موجودًا دون تنفيذ المالك، فإنه يضع S هناك بدلاً من ذلك، مع الحفاظ على الفرق المهم بين البت الخاص وبت التنفيذ العادي الموجود أسفله.

يشرح وصف الملف الحالة الصغيرة على أنها تنفيذ باستخدام هوية مالك الملف ويضع علامة على المجموعة ذات الأحرف الكبيرة على أنها لا تحتوي على أي شيء للتشغيل. تصف هذه العبارات مخرجات هذا التنفيذ. لا يوفر المستودع أي سجل لبراءات الاختراع أو التاريخ الأساسي، لذلك لا ينسب هذا القسم الآلية أو تاريخ تقديمها.

يتم تنفيذ السلوك setuid. لم يتم الحصول على تاريخ براءات الاختراع

تستخدم تفسيرات الدليل نفس القيمة الرقمية ولكن أفعالًا مختلفة للبتات العادية. قراءة إدخالات القوائم، وكتابة الأغلفة، وإنشاء الإدخالات، وإعادة تسميتها، وحذفها، وتنفيذ الأغلفة التي تدخل الدليل والوصول إلى المحتويات المسماة. يصف التنفيذ أيضًا setgid على الدليل بأنه يتسبب في وراثة الملفات التي تم إنشاؤها حديثًا لمجموعة هذا الدليل.

يتم تمثيل Sticky بواسطة 1000 ويحتل موضع التنفيذ الآخر كـ t أو T. بالنسبة للدليل، تصف الأداة الحذف المقيد للإدخالات المشتركة. يتم تنفيذ هذه الدلالات التي تقدمها الآلة الحاسبة؛ لم يتم إنشاء سجل فرعي أو نسب عبر النظام، ولا يتم الاستعلام عن نظام ملفات مباشر لتأكيد السلوك المحلي.

يتم وصف سلوك البتات الخاصة للدليل دون المطالبة بالنسب

يقوم المصدر بتسمية كل قناع مباشرة: 0400، 0200، و 0100 للمالك؛ 0040، 0020، و0010 للمجموعة؛ 0004، 0002، ​​و0001 للآخرين. إضافة Setuid وsetgid وsticky 4000 و2000 و1000. يعد التحويل عبارة عن اختبار بت ودمج بين البتات بدلاً من اللجوء إلى معيار خارجي.

قواعد الإدخال ملموسة بالمثل. تقبل Octal رقمًا واحدًا إلى أربعة أرقام من 0 إلى 7، مع نماذج بادئة اختيارية بنمط 0 أو 0o. يقبل الإدخال الرمزي تسعة مواضع أو عشرة بحرف نوع ملف معروف. لا يثبت المستودع أن كل تطبيق أو معيار يقبل بالضبط نفس القواعد النحوية السطحية.

يتم التحقق من أقنعة البت المسماة ودلالات التحويل؛ مطالبات المعايير العالمية ليست كذلك

النموذج المدمج له حدود متعمدة. وهو يوفر فئة مالك واحدة، وفئة مجموعة واحدة، وفئة أخرى، ولكن لا يوجد إدخال مستخدم مسمى، أو إدخال مجموعة مسماة، أو قناع ACL، أو ACL الافتراضي. كما أنه لا يوجد لديه مجموعة القدرات. لا يمكن استنتاج هذه الآليات من سلسلة rwx عادية على ما يبدو أو من تحويل ثماني ناجح.

توليد الأوامر لا يوسع النموذج. يصدر وسيطة ثماني أو عبارات صريحة u=، g=، وo=، مضيفًا u+s، g+s، أو +t عند الحاجة. وتبقى النتيجة النص المعروض. تجمع المراجعة المسؤولة أي ACL والقدرة والملكية وأدلة التنفيذ بشكل منفصل قبل التعامل مع الوضع كحساب كامل للتحكم في الوصول.

توجد قوائم ACL والإمكانات خارج نموذج الوضع المطبق

لا تحتوي مجموعة المصدر هذه على أي مقارنة مدعومة مع Windows، VMS، الخطة 9، أو سجلات أذونات نظام التشغيل الأخرى. إن حذف هذه الروايات أكثر دقة من تقديم التناقضات التي تم تذكرها كحقيقة. توضح الآلة الحاسبة فقط تمثيل الوضع الذي تنفذه، ويمكن أن تحدد اختباراتها سلوك التحويل بدلاً من تطور الأنظمة غير ذات الصلة.

وينطبق نفس الحذر على لغة التوافق واسعة النطاق. قد يتم تحليل حرف نوع الملف البادئ الذي تم التعرف عليه قبل مواضع الأذونات التسعة، لكن هذا لا يثبت التنسيق العالمي ls. استخدم المخرجات كقراءة دقيقة للتدوين المقبول لهذه الأداة، ثم راجع وثائق النظام الأساسي الموثوقة لمعرفة السلوك الذي يتجاوز هذه الحدود المدعومة بالمصدر.

يتم حذف سجلات أذونات نظام التشغيل الأخرى بدون مصادر

ما يبقى من التدقيق هنا هو صغر حجم النموذج المطبق. تغطي اثنتا عشرة بتة مسماة ثلاث فئات إذن عادية وثلاثة أعلام خاصة، بينما تعرض العروض الثمانية والرمزية نفس العدد الصحيح بأشكال مختلفة. يتم رفض الأرقام غير الصالحة أو الحروف الرمزية التي في غير مكانها بدلاً من إصلاحها بصمت، مما يجعل الأخطاء مرئية أثناء التحويل.

وهذا يكفي لوجبة عملية بدون درس في التاريخ. قم بفك تشفير الوضع، وفحص كل فئة، ولاحظ ما إذا كان s أو S أو t أو T يحل محل موضع التنفيذ. ثم توقف حيث تتوقف الأدلة: تشرح الآلة الحاسبة التمثيل والنص الذي تم إنشاؤه، في حين تتطلب الملكية والسياسة وسلوك نظام الملفات والمصدر التاريخي مصادر أخرى.