الملخص

  • يقترح draft-ietf-nfsv4-posix-acls-02 أربع سمات اختيارية لعرض POSIX Draft ACL مباشرة وتحديد النموذج الذي يستخدمه الخادم فعلاً في قرار الوصول.
  • عند النطاق الخاص بكل كائن، تستطيع كتابة من عميل قديم تبديل الشكل الحقيقي وحذف قواعد السماح والمنع في النموذج الآخر، بينما تبقى إدخالات AUDIT/ALARM منفصلة.
  • يتطلب الادعاء الموثوق سلسلة من القدرة، والشكل والنطاق، والكتابة المرتبة، والقراءة الذرية، والهوية، وحساب Mask، وقرار العملية، وأثرها على الملف.

نجاح الكتابة قد يعني استبدال السياسة

لنفترض دليلاً يخزن ACL من نوع POSIX Draft بوصفها الشكل الحقيقي. تمنح خانة لمجموعة مسماة حق الكتابة، لكن ACE من نوع Mask يضع الحد الفعلي. يقرأ عميل حديث قائمة الوصول والقائمة الافتراضية وmode فتبدو الصورة سليمة.

بعد ذلك يكتب عميل قديم السمة dacl. إذا كان acl_trueform_scope على مستوى الكائن، فقد ينقل SETATTR الناجح الملف إلى ACL_MODEL_NFS4 ويحذف قائمتي POSIX للوصول والوراثة. رمز النجاح يثبت قبول الانتقال، لا بقاء السياسة السابقة.

والعكس ممكن. كتابة POSIX ACL غير فارغة قد تحول كائن NFSv4 إلى POSIX Draft وتحذف dacl الخاصة بـ ALLOW/DENY. أما AUDIT/ALARM فتبقى في سطح منفصل. لذلك لا تكفي عبارة «حُدثت ACL» لمعرفة القواعد التي ستملك حق الرفض في العملية التالية.

المراجعة 02 المؤرخة في 7 سبتمبر 2026 هي Internet-Draft نشطة لمجموعة NFSv4 تستهدف Standards Track وتنتهي في 11 مارس 2027. ليست RFC، ولا ميزة إلزامية، ولا شهادة امتثال أو انتشار لمنتج.

أربع سمات تحدد موضع الحقيقة

تميز acl_trueform بين NFSv4 وPOSIX Draft وعدم وجود ACL. وتحدد acl_trueform_scope ما إذا كان الاختيار يخص كائناً أو نظام ملفات أو خادماً. تحكم posix_access_acl الوصول إلى الكائن الحالي، بينما توفر posix_default_acl مادة الوراثة لأبناء الدليل في المستقبل.

الدعم مترابط: من يوفر إحدى سمتي الشكل الحقيقي يجب أن يوفر كلتيهما؛ ونظام الملفات الذي يوفر إحدى قائمتي POSIX يجب أن يوفر القائمتين وسمتي الشكل وسلوك mode وmode_umask.

لكن جلسة NFSv4.2 لا تثبت هذه القدرة وحدها. قد يجهل العميل الامتداد، وقد لا يفعله export، وقد يختلف كائنان متجاوران إذا كان النطاق فردياً. لذا يحمل إيصال القدرة هوية الخادم والجلسة وexport وfilehandle وخريطة السمات والوقت.

القناع يضع سقف الصلاحية

تضم POSIX ACL الموسعة المالك ومجموعة المالك والآخرين، إضافة إلى مستخدمين أو مجموعات مسماة وMask. بالنسبة إلى المجموعات، لا يصبح البت نافذاً إلا إذا ظهر في الخانة وفي Mask معاً.

قد تعرض الواجهة حق الكتابة لمجموعة بينما يلغي Mask أثره. ولا تكفي البتات التسعة الدنيا في mode؛ ففي القائمة الموسعة تعكس بتات المجموعة Mask لا Group_obj بالضرورة.

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

القائمة الافتراضية لا تمنح الوصول إلى الدليل

قائمة الوصول تحكم الكائن. أما القائمة الافتراضية فتوجد في الدليل وتشارك في إنشاء قوائم الأبناء اللاحقين؛ ولا تحكم الوصول إلى الدليل نفسه.

عند الإنشاء تتقاطع الصلاحيات الموروثة مع بتات mode. لذلك يلزم mode_umask: يقدم mode أولاً، ثم تجري الوراثة، ثم تطبق أي ACL صريحة.

تدقيق ملف قديم يحتاج قائمة الأب وقت الإنشاء وmode وumask وترتيب العمليات والقراءة النهائية للابن. حالة الأب اليوم لا تعيد الماضي حتماً.

الذرية تثبت لحظة لا مستقبلاً

إذا جمع SETATTR بين mode وPOSIX ACL، يطبق mode أولاً. وإذا خلط acl أو dacl مع سمات POSIX في خريطة واحدة، يجب أن يعيد الخادم NFS4ERR_INVAL. ويوصي المشروع بأن تجمع القراءة الشكل وmode والقوائم ذرياً بالنسبة إلى الكتابات المتزامنة.

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

المصفوفة الفارغة لا تعني انعدام القيود

في نطاق الكائن، يمكن لكتابة posix_access_acl فارغة حذف ACL من نوع POSIX وإرجاع الشكل إلى ACL_MODEL_NONE. لكن القراءة تكون فارغة أيضاً عندما يكون الشكل الحقيقي NFSv4.

من دون acl_trueform يبدو الحالتان واحدة. قد يعتمد الأول على mode، ويخضع الثاني لـNFSv4 ACL كاملة. تحويل الفراغ تلقائياً إلى «لا قيود» يحول نقص السياق إلى إذن.

التنفيذ التجريبي دليل محدود

يسجل المشروع عملاً تجريبياً في FreeBSD وتصحيحاً لـLinux، مع نجاح معلن لأوامر getfacl وsetfacl وقوائم كبيرة. لكنه يوضح أن المعلومات قدمها المساهمون ولم تتحقق منها جهة مستقلة، وليست اعتماداً من IETF أو قائمة منتجات.

تثبت هذه التجارب إمكان التنفيذ ضمن حدودها. ولا تثبت الإدراج في إصدار، أو التفعيل الافتراضي، أو كل انتقال بين النماذج، أو كل حالة هوية، أو صحة قرار وصول فعلي.

ثمانية إيصالات لادعاء واحد

القول إن مستخدماً يستطيع الكتابة يتطلب: قدرة دقيقة؛ الشكل الحقيقي والنطاق؛ كتابة مقبولة بالترتيب؛ قراءة ذرية؛ هوية ومجموعات فعلية؛ حساب ACE وMask وmode والوراثة؛ قرار العملية المحددة؛ وأثرها النهائي في الملف والتطبيق.

تقوي السمات الجديدة المراحل الأربع الأولى. وتزداد قيمتها حين لا تُستخدم بديلاً للمراحل الأربع التي لم تقع بعد.

المصادر