أدوات المطور · حاسبة Chmod
كيفية قراءة أذونات ls -l وتحويلها إلى الوضع الثماني
· كيف يعمل
chmod يونيكس سير عمل المطور
السلسلة المكونة من عشرة أحرف في بداية ls -l هي نوع ملف بالإضافة إلى تسع بتات إذن. يوضح هذا المنشور كيفية فك تشفيره وإنتاج الوضع الثماني الذي يريده chmod، بما في ذلك أحرف البت الخاصة.
تذكرة تم لصق -rw-r-----+ فيها - تحتاج إلى معرفة ما إذا كنت تريد إخبار المستخدم بتشغيل chmod 640 أو أي شيء آخر
تحتوي السلسلة الملصقة مثل -rw-r-----+ على أكثر مما يقبله هذا المحلل اللغوي. النواة التي تم التعرف عليها عبارة عن نص إذن مكون من تسعة أحرف، يسبقه بشكل اختياري حرف واحد من نوع الملف المدعوم. علامة الزائد الزائدة تجعل الإدخال طويلًا جدًا ويتم رفضه. تؤدي إزالة هذه العلامة الخارجية إلى ترك -rw-r-----، والذي يتحول إلى 640: يقرأ المالك مجموعة /write,، ولا توجد أذونات للآخرين.
لا يؤدي هذا التحويل إلى فك تشفير ما تمثله علامة الزائد بخلاف تحذير المقالة 501 بأن القائمة الطويلة قد تستخدمها لقوائم ACL. لا تحتوي الآلة الحاسبة على ACL إدخالات أو قناع. كما أنه لا يقوم بفحص جهاز التذكرة أو مالكها أو مجموعتها أو مسارها. وبالتالي فإن الوضع 640 هو قيمة الإذن الأساسية التي يمثلها المركز المقبول، وليس إجابة كاملة حول الوصول الفعال.
الحرف الأول هو النوع — شرطة، d، l، c، b، p، s، ولماذا لا يعد جزءًا من الوضع
يتم التعامل مع الحرف الأول الاختياري كعلامة كتابة بدلاً من بت إذن. يتعرف المحلل اللغوي على -، d، l، b، c، p، s، D، و؟. عندما يظهر واحد قبل تسعة مواضع إذن صالحة، تتم إزالته لأغراض حسابية. يحدد المالك والمجموعة والثلاثيات الأخرى الناتجة بمفردهم القيمة الثمانية واختيارات المصفوفة.
من السهل التحقق من هذا السلوك باستخدام مدخلات مكافئة. ينتج كل من rwxr-x--- و -rwxr-x--- 750 لأن الشرطة البادئة لا تساهم بأي بت للوضع. يمكن أن تسبق علامة الدليل نفس النص ولا تزال تنتج نفس العدد الصحيح. يتحكم محدد الهدف في الصياغة التوضيحية بشكل منفصل، لذا فإن قبول حرف الكتابة لا يعني أن المتصفح اكتشف هذا الكائن أو فتحه.
تسعة أحرف في ثلاث مجموعات - المالك، المجموعة، الآخرون، دائمًا بترتيب rwx، مع شرطة لكل بتة معطلة
تشكل مواضع الأذونات التسعة ثلاثة ثلاثية ثابتة في المالك والمجموعة والترتيب الآخر. داخل كل ثلاثية، تحتل القراءة الموضع الأول، وتكتب الثاني، وتنفذ الثالث. الشرطة تعني أن البت المقابل متوقف. يرفض التحقق من صحة الموضع حرفًا في غير موضعه بدلاً من التخمين، لذلك لا يمكن أن يصبح r في موضع الكتابة إذنًا آخر بصمت.
يتم قبول كل خريطة ثلاثية لرقم ثماني واحد حسب الأوزان في المادة 501: القراءة هي 4، الكتابة هي 2، والتنفيذ هو 1. تعرض المصفوفة نفس العلامات الموجودة في خانات الاختيار وتعيد بناء العدد الصحيح عندما يتغير أحدها. يتم قبول الحروف الخاصة فقط في مواضع التنفيذ، مع الحفاظ على setuid أو setgid أو اللاصق مع حالة التنفيذ الأساسية.
مثال عملي: -rwxr-x--- إلى 750 - تعيين 4، 2، 1 لكل حرف والجمع لكل مجموعة
قم بتحويل -rwxr-x--- عن طريق تجاهل علامة الكتابة البادئة وتقسيم النص إلى rwx وr-x و---. يمتلك المالك 4+2+1، وينتج 7. المجموعة لديها 4+1، وتنتج 5. لا يحتوي الآخر على بت ممكّن، مما يؤدي إلى إنتاج 0. تقوم الآلة الحاسبة بإرجاع 750 وتحدد مربعات الأذونات العادية التسعة المطابقة.
يجب أن يقع التحقق العكسي على نفس نص النص. أدخل 750 وسيصبح الحقل الرمزي rwxr-x---; اختر علامة ملف عادي للنموذج المعروض وسيصبح -rwxr-x---. معاينة المهمة لها صيغة مختلفة: u=rwx,g=rx,o=. وتصف وجهات النظر الثلاثة جميعها وضعاً ثابتاً واحداً، في حين تظل الملكية والحكمة في تطبيقه دون حل.
علامتا الزائد وعلامة at - الإدخالات + التي تعني ACL موجودة، والرمز @ يعني السمات الموسعة على نظام التشغيل macOS، ولا يشكل أي جزء من الوضع
تعد علامات الزائد وعلامات البيانات الوصفية في المخطط التفصيلي، ولكن الحقيقة المطبقة أضيق: يرفض هذا المحلل اللغوي إما لأن الإدخال المقبول ينتهي بعد نص الإذن. تحدد المادة 501 على وجه التحديد علامة زائد زائدة مع قوائم ACL. CHMOD_SOURCES لا يقدم أي تفسير مكافئ للعلامة، لذلك لا يعين لها هذا القسم معنى نظام تشغيل غير مدعوم من المستودع.
لا تقم بإزالة أي علامة بشكل أعمى عندما يكون الوصول الفعال مهمًا. بدلاً من ذلك، قم بفصل التسعة أو العشرة أحرف الأساسية المقبولة لتحويل الوضع الأساسي والتحقيق في أي الباقي باستخدام الأدلة من النظام الأصلي. يمكن للآلة الحاسبة أن توضح أن rw-r----- تعني 640. ولا يمكنها شرح بيانات التعريف الإضافية، أو قراءة السمات الموسعة، أو تحديد ما إذا كانت آلية أخرى للتحكم في الوصول تغير ما يمكن للمستخدم أو العملية القيام به.
إن علامة الزائد وعلامة at هي علامات بيانات تعريفية يرفضها هذا المحلل اللغوي
لا يتم تشغيل أوامر الإحصائيات الخارجية بواسطة حاسبة المتصفح. لا تحتوي الصفحة على مشغل أوامر أو وصول إلى نظام الملفات؛ حقل المسار الخاص به موجود فقط لإنشاء نص chmod مقتبس للعرض. وبالتالي، لا يمكنه جلب الوضع الحالي، أو مقارنة مخرجات الأوامر الخاصة بالنظام الأساسي، أو التصديق على أن السلسلة الملصقة جاءت من أداة مساعدة معينة. يجب على المستخدم توفير القيمة للتحويل.
بمجرد توفير وضع جدير بالثقة، يوفر المتصفح فحصًا مستقلاً للتمثيل. أدخل النواة الرمزية وقارن نتائجها الثمانية والمصفوفة والملخص ومعاينة المهمة. تكتشف الاتفاقية أخطاء النسخ والأخطاء الحسابية ضمن التنسيق المدعوم. ولا يتحقق من صحة أمر التجميع الخارجي، أو يكشف عن الملكية، أو يثبت أن الأذونات الممثلة فعالة على الكائن الذي تم نسخ النص منه.
لا يتم تشغيل أوامر الإحصائيات الخارجية بواسطة حاسبة المتصفح
ACL يظل فك التشفير خارج المسار. يحتوي نموذجه على المالك والمجموعة وأجزاء أخرى وثلاث بتات خاصة، بدون إدخالات مسماة أو قناع ACL. فك تشفير إذن Windows غائب أيضًا: لا يوجد نموذج هوية Windows، أو بناء جملة إدخال للتحكم في الوصول، أو اكتشاف النظام الأساسي. يمكن تحويل نواة على طراز يونكس ذات تسعة مواضع، ولكن لا يمكن إعادة بناء أي نظام أذونات إضافي من تلك النتيجة.
هذه الحدود أيضًا تحد من التشخيص. الوضع الأساسي الذي يبدو كافيًا لا يثبت أن ACL أو سياسة أخرى غير ذات صلة، في حين أن الوضع المقيد لا يحدد كل المنح المحتملة. تقوم الآلة الحاسبة بتسوية البتات الاثني عشر الممثلة فقط. استخدم مخرجاتها لتوضيح الوضع العادي بدقة، ثم احتفظ بالادعاءات حول الترخيص الفعال للأدوات والوثائق التي تكشف فعليًا نظام الأذونات الخارجية.
يظل ACL وفك تشفير إذن Windows خارج المسار
تصبح قراءة النمط ls ميكانيكية بمجرد عزل النواة المقبولة. قم بإسقاط حرف واحد من النوع البادئ الذي تم التعرف عليه، وقسم المواضع التسعة المتبقية إلى مالك، والمجموعة، وغيرها، وإجمالي القراءة 4، والكتابة 2، وتنفيذ 1 داخل كل ثلاثية. تقوم الآلة الحاسبة بإجراء هذا التحويل والتحقق من صحة الحروف الخاصة بالمواضع، بما في ذلك نماذج s وS وt وT المطبقة.
اجعل الاستنتاج متناسبًا مع المدخلات. يثبت التحويل الناجح أن السلسلة المقبولة تتوافق بشكل متسق مع الوضع الثماني والمصفوفة والملخص والمهمة التي تم إنشاؤها. لا يقوم بتشغيل الإحصائيات أو فحص المسار أو فك تشفير علامة زائدة أو تحديد الملكية أو تطبيق chmod. هذه الحدود تجعل المخرجات مفيدة: فهي دقيقة فيما يتعلق بحسابات الوضع الأساسي وصامتة بشأن الأدلة التي لم تجمعها مطلقًا.