أدوات المطور · حاسبة Chmod
أذونات SSH مفتوحة جدًا: الأوضاع الدقيقة التي يحتاجها ~/.ssh والسبب وراء ذلك
· لماذا يهم
chmod يونيكس التحكم في الوصول
يرفض OpenSSH المفاتيح وملفات المفاتيح المعتمدة التي يمكن للمستخدمين الآخرين قراءتها أو تغييرها. يسرد هذا المنشور الأوضاع التي يتوقعها، ويشرح فحص StrictModes، ويوضح كيفية التحقق منها.
الأذونات 0644 لـ id_ed25519 مفتوحة جدًا - تم رفض المفتاح الذي كان يعمل بالأمس بعد نسخه إلى جهاز جديد
يتم فك تشفير المفتاح الخاص المنسوخ بالوضع 0644 إلى rw-r--r--. وللمالك قراءتها وتغييرها، وللجماعة وغيرهم قراءتها. بدلاً من ذلك، يعرض الإعداد المسبق للملف الخاص 600 rw-------، ويترك تلك الفئات فارغة. يوضح هذا البتات بدقة، لكن لا يمكنه إثبات سبب قبول عميل SSH للمفتاح أو رفضه.
قارن الوضع المرصود مع الإعداد المسبق الخاص. المدخلات 0644، 644 و0o644 متكافئة، والتغيير إلى 600 يزيل القراءة الجماعية والقراءة الأخرى مع الحفاظ على القراءة والكتابة للمالك. الأمر الذي تم إنشاؤه خامل. يتطلب سلوك العميل والملكية وقوائم التحكم في الوصول (ACL) ودلالات التخزين أدلة تتجاوز هذا المحول.
لماذا يقوم العميل بالتحقق أصلاً - المفتاح الخاص الذي يمكن للآخرين قراءته لم يعد خاصًا، لذلك يرفض ssh الثقة به
يقوم المستودع بتسمية 600 "ملف خاص" ويصف الوصول للمالك فقط. حساباتها تدعم هذا الوصف: 6 يعطي المالك القراءة والكتابة، في حين أن كلا الصفرين يزيلان الأذونات العادية من المجموعة وغيرها. والنتيجة الرمزية هي rw-------. وهذا يثبت غياب المنح عن الوضع، وعدم قبول العميل لها.
لا تظهر أي رسالة تنفيذ أو دليل أو تكوين أو وقت تشغيل OpenSSH في المصادر، لذلك لا يمكن للإعداد المسبق إنشاء سياسة الرفض. لا تعد الآلة الحاسبة بأن وضعًا واحدًا يحل كل خطأ ولا يتحقق من صحة محتويات المفتاح. إنه يوضح بشكل موثوق ما إذا كان المرشح يعرض القراءة أو الكتابة أو التنفيذ خارج فئة المالك، وليس أكثر.
تسميات المستودع 600 خاصة؛ تحتاج سياسة رفض العميل إلى دليل OpenSSH
لم يتم تنفيذ سلوك StrictModes أو التحقق منه هنا. لا يحتوي المتصفح على خادم SSH أو فحص الدليل الرئيسي أو البحث عن الملكية أو إدخال التكوين. لا يمكن معرفة ما إذا كان قد تمت استشارة المفاتيح المعتمدة، أو ما إذا كانت هوية أخرى يمكنها كتابة دليل، أو ما إذا كان أحد الإعدادات ينطبق. يؤدي الدخول إلى الوضع إلى إجراء تحويل، وليس قرارًا خفيًا أو تدقيقًا لنظام الملفات.
البتات الدقيقة والسياسة الدقيقة هي أسئلة منفصلة. يثبت الوضع 600 rw-------، بينما يثبت 700 rwx------. ولا يحدد أي منهما الملكية أو يتحقق من الدلائل الأصلية أو يصمم البرنامج الخفي. اجمع وثائق الخادم وأدلة نظام الملفات بشكل مستقل، ثم استخدم الآلة الحاسبة لفك تشفير الملاحظات دون تقديم مخرجاتها كحكم StrictModes أو تدقيق أمني كامل.
لم يتم تنفيذ سلوك StrictModes أو التحقق منه هنا
يتم شحن الوضعين 600 و700 إلى إعدادات مسبقة خاصة. يمنح الوضع 600 مالك الملف العادي القراءة والكتابة، بدون مجموعة أو أذونات أخرى. يضيف الوضع 700 تنفيذ المالك للدليل، مما يتيح الدخول والوصول إلى المحتوى المسمى، بينما لا تتلقى الفئات الأخرى أي شيء من خلال البتات العادية. الآلة الحاسبة لا تزال لا تعرف المالك الفعلي.
تظل قواعد الملفات الأخرى ذات الصلة بـ SSH خارجية. على الرغم من أن المفاتيح العامة والمفاتيح المعتمدة قد تكون ذات صلة، إلا أن المستودع لا يوفر أي متطلبات تم التحقق منها لها. يمكن للآلة الحاسبة فك تشفير 644 كـ rw-r--r-- ولكن لا يمكنها التصديق على قبول SSH. يحتاج أي جدول متطلبات أوسع إلى أدلة OpenSSH موثوقة غائبة عن هذه المصادر والمقالة الحالية.
يتم شحن 600 و700 إلى إعدادات مسبقة خاصة؛ تظل قواعد الملفات SSH الأخرى خارجية
مثال مدعوم يحول سلاسل القائمة دون تدقيق الدليل. إذا أظهر الإخراج الخارجي -rw-r--r--، فسيقوم المحلل بإرجاع 644؛ إذا أظهر rw-------، فإنه يُرجع 600. تسلط المصفوفة الضوء على مربعات القراءة الجماعية ومربعات القراءة الأخرى التي تم تغييرها. يتحقق هذا من النسخ والحساب مع ترك المسار والملكية ومصدر الإدراج دون فحص.
تعمل سلاسل الدليل بشكل مشابه. يصبح drwx------ المتوفر 700 لأنه تتم إزالة حرف النوع الذي تم التعرف عليه قبل تحليل تسعة مواضع إذن. يمكن للملخص عرض بادئة الدليل. لا تسرد الصفحة ~/.ssh ولا تكتشف الملفات أو المالكين أو مؤشرات ACL، لذلك لا يجب وصف هذا التحويل على أنه تدقيق.
مثال عملي: تحويل سلاسل الوضع المنسوخة دون تدقيق الدليل
يقع فقدان الوضع عبر أدوات النقل وأنظمة الملفات خارج دليل المستودع. لا يوجد مصدر ينسخ الملفات أو يفتح الأرشيفات أو يقوم بتحميل التخزين أو يقارن البيانات التعريفية عبر المواقع. لا يمكن للآلة الحاسبة أن تنسب 644 إلى مشاركة أو محرك أقراص أو نظام تهيئة أو أداة مساعدة للأرشفة. فهو يرى فقط الوضع المكتوب في الحقل الخاص به، دون سجل النقل.
عندما يكون للعنصر المنسوخ وضع غير متوقع، قم بمقارنة القيم المتوقعة والمرصودة دون إلقاء اللوم. بين 600 و644، تظل أذونات المالك دون تغيير أثناء ظهور القراءة الجماعية والقراءة الأخرى. يدعم المحول تلك الدلتا بالضبط. ويتطلب تحديد ما إذا كان النقل أو الحفظ أو الاستجمام سبباً في ذلك دليلاً من الوجهة ومسار النقل.
يعد فقدان الوضع عبر أدوات النقل وأنظمة الملفات خارج دليل المستودع
يقع تنسيق المفتاح وحالة الوكيل وسجلات الخادم خارج هذه الحاسبة. فهو يوزع نص الإذن الثماني والرمزي، وليس المفاتيح الخاصة أبدًا أو بيانات أو سجلات وكيل ssh. لا يشير تحويل 600 الصالح إلى أي شيء عن مواد التشفير أو الهويات المحملة أو تبادل الشبكة أو استجابة الخادم. يثبت أن المالك فقط يقرأ ويكتب مع مجموعة فارغة وفئات أخرى.
يمنع هذا الحد التعامل مع كل فشل SSH كعمل chmod. إذا كان الوضع المرصود يختلف عن الإعداد المسبق الخاص، فإن الآلة الحاسبة تعرض البتات الدقيقة؛ إذا كان متطابقًا بالفعل، فلن يقدم المسار أي دليل SSH إضافي. استمر في التشخيص الخارجي بدلاً من توسيع نطاق الوصول. لا يعد التحويل الناجح بمثابة مصادقة، ولا تنفذ المعاينة أي شيء.
الخلاصة: الخاص يعني 600 و700 — وتؤكد الآلة الحاسبة أن الوضع الذي أنت على وشك تعيينه لا يعطي شيئًا للمجموعة أو الآخرين
الفكرة الأساسية المدعومة بالمستودع هي أن 600 و700 يحتفظان بالأذونات العادية للمالك. أشكالها الرمزية، rw------- وrwx------، لا تحتوي على مجموعة أو منح أخرى. يتحقق النص الثماني والرمزي ومربعات الاختيار والملخص من تلك التمثيلات، بينما يتم رفض المواضع المشوهة. لا شيء من هذا يثبت SSH القبول أو الملكية أو صلاحية المفتاح أو المصادقة.
لا تحول التحويل إلى سياسة SSH عالمية. لا يقوم المسار بتطبيق StrictModes أو فحص الدلائل الرئيسية أو تحديد المالكين أو التحقق من صحة الملفات الرئيسية. استخدمه لتأكيد المجموعة الفارغة والفئات الأخرى، ثم اعتمد على أدلة SSH الموثوقة والنظام الفعلي. يؤدي نسخ أمر معروض إلى نقل المسؤولية إلى الصدفة ونظام الملفات.