العربية

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

chmod vs chown: لماذا غالبًا ما يكون تغيير الوضع هو الرافعة الخاطئة

· لماذا يهم

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

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

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

أمران، خطأ واحد - تم "إصلاح" رفض الإذن ثلاث مرات هذا الشهر باستخدام ثلاثة أسطر مختلفة من chmod وchown

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

افصل بين الأسئلة أولاً. "ما الذي يسمح به 750؟" هو المسؤول: المالك يحصل على rwx، والمجموعة تحصل على rx والآخرون لا يحصلون على شيء. "من يملك هذا؟" و"ما هي الهوية التي تدير العملية؟" تتطلب أدلة خارجية. قد يؤدي تحرير الوضع قبل تحديد الهوية إلى توسيع الفئة الخاطئة؛ لا يمكن لطرق العرض المتزامنة الاختيار بين chmod وتغييرات الملكية.

الملكية أولاً، ثم الوضع - كيف تختار النواة المالك أو المجموعة أو الآخرين لعملية قبل أن تنظر إلى أي أجزاء

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

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

يعتمد اختيار الفئة على الهوية التي لا تستقبلها الآلة الحاسبة

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

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

نمط المجموعة المشتركة - chgrp plus setgid في الدليل بالإضافة إلى 2775 كإجابة قياسية لمستخدمين يحتاج كلاهما إلى الكتابة

يتطلب سير عمل المجموعة المشتركة أدوات وسياسة ملكية خارجية. تم تصنيف الإعداد المسبق 775 على أنه "مشترك مع مجموعة" نظرًا لتمكين الكتابة الجماعية. يضيف الإعداد المسبق 2775 setgid، مما يعرض rwxrwsr-x؛ بالنسبة للأدلة، ترث الملفات الجديدة مجموعة الدليل. لا تشكل أوصاف البت هذه تصميمًا كاملاً للتعاون أو توصية نشر.

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

يتطلب سير عمل المجموعة المشتركة أدوات وسياسة ملكية خارجية

بعد حل الملكية في مكان آخر، افحص وضع الدليل 750. يتلقى المالك القراءة والكتابة والتنفيذ؛ تتلقى المجموعة القراءة والتنفيذ؛ الآخر لا يتلقى شيئا. يجوز للمجموعة إدراج الإدخالات وإدخالها ولكن لا يمكنها إنشاء الإدخالات أو إعادة تسميتها أو حذفها. تعرض الآلة الحاسبة rwxr-x--- وu=rwx,g=rx,o= دون فحص الدليل أو الحساب الفعلي.

افحص 640 بشكل منفصل بحثًا عن ملف عادي. فيصبح rw-r-----: مالك يقرأ ويكتب، وقراءة جماعية، ولا شيء لغيره. تعرض الصفحة كلتا النتيجتين ولكن لا يمكنها تعيينهما بشكل متكرر أو تحديد حساب نشر أو اختيار مجموعة خدمة. تتطلب المطالبة بالملاءمة لـ /var/www وجود عبء العمل وغياب دليل الهوية هنا.

مثال عملي: افحص 750 و640 بعد حل الملكية في مكان آخر

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

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

اكتشاف هوية العملية خارج أداة المتصفح هذه

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

المدخلات المفقودة تحد من التشخيص والعلاج. لا يمكن للمسار الاختيار بين تغييرات chmod أو chown أو ACL أو تصحيحات التعيين. يمكنه فك تشفير الوضع الأساسي المتوفر وتقديم أحرف خاصة مثل s وS وt وT. تعامل مع ذلك كطبقة دليل واحدة، وليس دليلاً على وصول طرف ثالث أو حاوية.

الخلاصة: حدد الهوية قبل البتات - ثم استخدم حاسبة Chmod لجعل البتات عريضة بالقدر الذي تحتاجه الهوية

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

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