أدوات المطور · حاسبة Chmod
لماذا يعد chmod 777 هو الإصلاح الخاطئ لأخطاء رفض الإذن
· لماذا يهم
chmod يونيكس التحكم في الوصول
777 يجعل الخطأ يختفي من خلال منح الجميع كل شيء. يشرح هذا المنشور ما يمنحه ذلك بالفعل، وكيف يتم استغلاله، والخطوات التشخيصية التي تحدد المشكلة الحقيقية.
اختفى الخطأ، ولم يختفي السؤال - قام chmod -R 777 في دليل المشروع بإصلاح نموذج التحميل ولا أحد يعرف السبب
يثبت خطأ الإذن الذي يختفي بعد 777 أن الوصول الواسع النطاق هو الذي غيّر النتيجة. ولا يكشف عن البت المهم أو ما إذا كانت بتات الوضع هي التي تسببت في الفشل. تقوم الآلة الحاسبة بتعيين 777 إلى rwxrwxrwx. يتلقى كل فئة القراءة والكتابة والتنفيذ، والتي تختلف معانيها العملية بين الملفات العادية والدلائل.
والدليل المفيد هو اختلاف مستوى البت عن الوضع الأصلي. سجل فصول هذا الوضع ثلاث مرات، ثم قارن 777 دون اعتبار النجاح تشخيصًا. لا تعرف الآلة الحاسبة هوية العملية أو المالك أو المجموعة أو ACL أو السياسة الإلزامية. فهو يكشف فقط مقدار الوصول الذي يمنحه 777 قبل أن يصبح الحل البديل إعدادًا دائمًا.
ما يمنحه 777 بكلمات واضحة - يمكن لكل مستخدم على النظام قراءة وتعديل و(بالنسبة للأدلة) إنشاء أو حذف أي شيء في الشجرة
يقوم الوضع 777 بتعيين الحد الأقصى للرقم العادي لكل فئة. يجمع كل 7 بين القراءة 4 والكتابة 2 وتنفيذ 1، مما يؤدي إلى إنتاج rwxrwxrwx. بالنسبة للملفات، يمكن لجميع الفئات قراءة المحتويات وتغييرها وتشغيلها. بالنسبة للأدلة، يمكنهم إدراج الإدخالات وتعديلها والدخول بالاسم. يتم تحديد كل خانة اختيار عادية.
يتوافق "كل شخص آخر" على وجه التحديد مع الإذن النهائي الثلاثي، وليس حسابًا معروفًا. بدون الهوية والملكية، لا تستطيع الآلة الحاسبة تحديد ما إذا كانت العملية تستخدم مالكًا أو مجموعة أو غير ذلك. لا تزال مقارنة 777 مع 775 أو 755 تكشف عن كل بتة كتابة تمت إزالتها بدقة، مع استبدال الأوصاف الغامضة مثل "مفتوح" باختلافات مرئية على مستوى الفصل.
كيفية حدوث الضرر - عملية ويب مخترقة، أو برنامج نصي مكتوب بشكل سيئ، أو تكوين تحرير مستأجر آخر أو إسقاط غلاف الويب
تكشف الآلة الحاسبة عن البتات الممنوحة ولكن لا يمكنها إثبات مسار الاستغلال. يُطلق الملف القابل للكتابة عالميًا تحذيرًا بأن أي حساب قد يغير محتوياته. يحذر الدليل 777 بدون لاصق من إمكانية إنشاء الإدخالات أو حذفها. وتنبع هذه العواقب من الوضع ونوع الهدف، وليس دليلاً على وجود حساب آخر أو تصرفه.
افصل العواقب المحتملة عن الأحداث المرصودة. لا تقوم الصفحة بفحص أي عمليات أو مستأجرين أو نصوص برمجية أو تكوين أو جذور ويب، ولا تنفذ أي شيء. يمكنه إثبات تمكين الكتابة للفصل الدراسي ووضع علامة على مرشح واسع النطاق للمراجعة. تتطلب الادعاءات المتعلقة بالتسوية أو الملفات المحقونة أو إساءة الاستخدام الفعلية أدلة بيئية لا تجمعها الآلة الحاسبة أبدًا.
تعرض الآلة الحاسبة البتات الممنوحة ولكن لا يمكنها إظهار مسار الاستغلال
يحدث تشخيص الهوية والملكية خارج هذا المسار. يتم تجميع البتات العادية كمالك ومجموعة وغيرها، لكن الآلة الحاسبة تتلقى فقط عددًا صحيحًا للوضع ونوع الهدف. بدون أسماء المالكين أو عضوية المجموعة أو بيانات اعتماد العملية، لا يمكن تحديد عناصر التحكم الثلاثية في محاولة الوصول الفاشلة، على الرغم من أنه يقوم بفك تشفير كل ثلاثية بشكل متسق.
ولهذا فإن توسيع جميع الفئات تشخيص ضعيف. قد يكون لبت المجموعة الذي تم التحقق منه أهمية عندما يجب أن تستخدم العملية الوصول إلى المجموعة؛ الملكية غير الصحيحة قد تجعل أي وضع يعدل العلاج الخاطئ. استخدم المصفوفة لعزل التغييرات المرشحة، ثم التحقق من الهويات والملكية خارجيًا. المتصفح يسوي التمثيل، وليس الترخيص.
يجب أن يتم تشخيص الهوية والملكية خارج هذا المسار
بالنسبة لدليل التحميل، قارن بين المرشحين دون وصف واحد. الوضع 777 يمنح كل دليل فئة القراءة والكتابة والتنفيذ. يقوم الوضع 775 بإزالة الكتابة الأخرى مع الحفاظ على الكتابة الجماعية. الوضع 755 يحجز الكتابة للمالك. تعرض الآلة الحاسبة هذه الاختلافات، لكن لا يمكنها معرفة الفئة التي يستخدمها القائم بالتحميل أو العمليات التي يحتاجها.
سجل أصغر تغيير بين المرشحين. من 777 إلى 775، تختفي الكتابة الأخرى فقط؛ من 775 إلى 755، تختفي الكتابة الجماعية أيضًا. ضوابط كتابة الدليل في إنشاء الإدخالات وإعادة تسميتها وحذفها، أثناء تنفيذ عناصر التحكم في الإدخال والبحث عن الأسماء. لا تزال الملاءمة تعتمد على الملكية والهوية وقوائم ACL وسلوك التطبيق خارج الآلة الحاسبة.
مثال عملي: مقارنة أوضاع تحميل الدليل المرشحة دون وصف أحدها
تتطلب قواعد الرفض الخاصة بالبرنامج وثائق البرنامج وأدلة وقت التشغيل. لا تحتوي مصادر chmod على سياسة SSH أو قواعد خادم الويب أو تكوين التطبيق. لا يمكنهم إثبات أن البرنامج يرفض 777، أو يقبل 755، أو يتطلب قيمة أخرى. تقوم الآلة الحاسبة بتحويل الأوضاع فقط وتصف عمليات الملف أو الدليل العادية الخاصة بها.
إذا أبلغ البرنامج عن أن الأذونات واسعة جدًا، فادخل إلى الوضع المرصود وتفحص مجموعته والبتات الأخرى. ثم راجع الأدلة الموثوقة لهذا البرنامج قبل تغيير أي شيء. سطر chmod الذي تم إنشاؤه هو نص خامل. تؤكد مطابقة العروض الثمانية والرمزية اتساق التحويل، وليس الامتثال لسياسة البرنامج أو النجاح التشغيلي المستقبلي.
تحتاج قواعد الرفض الخاصة بالبرنامج إلى وثائق هذا البرنامج
توجد حالات رفض التحكم في الوصول الإلزامية خارج chmod والآلة الحاسبة. لا توجد استعلامات مصدر SELinux أو AppArmor أو أي محرك سياسة آخر. وبالتالي قد يتم عرض الوضع 777 بشكل مثالي بينما يظل عنصر التحكم غير ذي الصلة غير مرئي. لا يمكن للصفحة التمييز بين هذا الشرط وبين الملكية، ACL، أو قيود التخزين أو التطبيق؛ كلها احتمالات خارجية وليست نتائج الآلة الحاسبة.
لا تتعامل مع الوضع الواسع باعتباره اختبارًا عالميًا لكل طبقة ترخيص. تنتهي أدلة الآلة الحاسبة بالمالك والمجموعة والبتات الأخرى بالإضافة إلى setuid وsetgid وsticky. فهو يعرض الأذونات المحددة، وليس سبب فشل العملية أو نجاحها. الحفاظ على الأوضاع التي تمت ملاحظتها، ومقارنة الأجزاء الدقيقة والتحقيق في السياسة الخارجية بشكل مستقل.
يتم رفض السياسة الإلزامية خارج chmod وخارج الآلة الحاسبة
افهم كل منحة قبل توسيع الوضع. أدخل 777 وستصبح جميع الأذونات العادية التسعة صريحة. قارن 755 لإزالة المجموعة والكتابة الأخرى، أو 775 للاحتفاظ بكتابة المجموعة أثناء إزالة الكتابة الأخرى. تكشف هذه التحولات الواقعية عن سطح الوصول لكل مرشح دون اختيار وضع لمالك أو عملية أو عبء عمل غير معروف.
قم بتحليل الهوية والملكية خارج المتصفح، ثم تحقق من الأجزاء المقصودة فقط. تأكد من موافقة النص الثماني والرمزي والملخص وخانات الاختيار، باستخدام شرح الملف أو الدليل المناسب. ترفض الصفحة الإدخالات المشوهة، ولكنها لا تقوم بتشغيل chmod ولا تحدد التسوية. قرارات الترخيص النهائية تعود إلى البيئة التي تم التفتيش عليها.