landlock_create_ruleset(2)

الاسم
landlock_create_ruleset - إنشاء مجموعة قواعد Landlock جديدة

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <linux/landlock.h>  /* Definition of LANDLOCK_* constants */
#include <sys/syscall.h>     /* Definition of SYS_* constants */
#include <unistd.h>

int syscall(SYS_landlock_create_ruleset,
            const struct landlock_ruleset_attr *attr,
            size_t size , uint32_t flags);

الوصف
مجموعة قواعد Landlock تحدد مجموعة من القواعد (أي الإجراءات على الكائنات). استدعاء النظام landlock_create_ruleset() هذا ينشئ واصف ملف جديد يحدد مجموعة قواعد. يمكن بعد ذلك استخدام واصف الملف هذا بواسطة landlock_add_rule(2) و landlock_restrict_self(2). انظر landlock(7) للحصول على نظرة عامة شاملة.

attr يحدد خصائص مجموعة القواعد الجديدة. يشير إلى البنية التالية:

        struct landlock_ruleset_attr {
            __u64 handled_access_fs;
            __u64 handled_access_net;
            __u64 scoped;
        };

    handled_access_fs هو قناع بت لإجراءات نظام الملفات المُدارة (انظر إجراءات نظام الملفات في landlock(7)).

    handled_access_net هو قناع بت لإجراءات الشبكة المُدارة (انظر إجراءات الشبكة في landlock(7)).

    scoped هو قناع بت لأعلام النطاق (انظر أعلام النطاق في landlock(7)).

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

    لأسباب تاريخية، يتم دائمًا رفض الحق LANDLOCK_ACCESS_FS_REFER مبدئيًا، حتى عندما لا يتم تعيين البت الخاص به في handled_access_fs. لإضافة قواعد جديدة مع حق الوصول هذا، يجب تعيين البت بشكل صريح (انظر إجراءات نظام الملفات في landlock(7)).

    الإدراج الصريح لـ حقوق الوصول المُدارة مطلوب لأسباب تتعلق بالتوافق مع الإصدارات السابقة. في معظم حالات الاستخدام، ستقوم العمليات التي تستخدم Landlock بـ إدارة نطاق واسع أو جميع حقوق الوصول التي تعرفها في وقت البناء (والتي اختبرتها مع نواة تدعمها جميعًا).

    يمكن أن تنمو هذه البنية في إصدارات Landlock المستقبلية.

يجب تحديد size كـ sizeof(struct landlock_ruleset_attr) لأسباب تتعلق بالتوافق.

يجب أن يكون flags 0 إذا تم استخدام attr. وإلا، يمكن تعيين flags إلى:

LANDLOCK_CREATE_RULESET_VERSION
    إرجاع أعلى إصدار ABI مدعوم من Landlock (بدءًا من 1). يمكن استخدام هذا الإصدار لنهج أمان بأفضل جهد، وهو مشجع عندما لا يكون فضاء المستخدم مرتبطًا بإصدار نواة محدد.

    ما لم يُذكر خلاف ذلك، جميع الميزات الموثقة في صفحات الدليل هذه متاحة مع الإصدار 1.

LANDLOCK_CREATE_RULESET_ERRATA
    إرجاع قناع بت للمشكلات المُصلحة لإصدار ABI الحالي من Landlock. إذا تم تعيين البت N (أي errata & (1 << (N - 1)))، فقد تم إصلاح التصحيح N في النواة قيد التشغيل.

    بالإضافة إلى إصدارات ABI، تتتبع آلية التصحيحات في Landlock الإصلاحات للمشكلات التي قد تؤثر على التوافق مع الإصدارات السابقة أو تتطلب وعيًا من فضاء المستخدم.

    تحقق من التصحيحات فقط إذا كان تطبيقك يعتمد تحديدًا على سلوك تغير بسبب الإصلاح.

    القائمة الكاملة لتصحيحات Landlock متاحة على https://docs.kernel.org/userspace-api/landlock.html#landlock-errata.

    هذا العلم متاح على جميع إصدارات Linux حيث تم إصلاح تصحيحات Landlock. يشمل هذا تحديدًا جميع إصدارات إصلاح الأخطاء الأحدث للنوى المستقرة حيث يتم دعم Landlock.

إذا تم تعيين LANDLOCK_CREATE_RULESET_VERSION أو LANDLOCK_CREATE_RULESET_ERRATA، فيجب أن يكون attr NULL وأن يكون size 0.

قيمة الإرجاع
عند النجاح، يُرجع landlock_create_ruleset() واصف ملف مجموعة قواعد Landlock جديد، أو إصدار ABI من Landlock، أو قناع بت لتصحيحات Landlock، وفقًا لـ flags.

عند حدوث خطأ، يُرجع -1 ويُضبط errno للإشارة إلى الخطأ.

الأخطاء
يمكن أن يفشل landlock_create_ruleset() للأسباب التالية:

E2BIG
    size كبير جدًا.

EFAULT
    attr لم يكن عنوانًا صالحًا.

EINVAL
    flags غير معروفة، أو وصول غير معروف، أو نطاق غير معروف، أو size صغير جدًا.

EINVAL
    attr غير NULL أو size غير صفري مع LANDLOCK_CREATE_RULESET_VERSION أو LANDLOCK_CREATE_RULESET_ERRATA.

ENOMSG
    وصولات فارغة (أي أن attr لم يحدد أي حقوق وصول لتقييدها).

EOPNOTSUPP
    نواة الحاسوب تدعم Landlock لكنه عُطّل في وقت الإقلاع.

المعايير
لينكس.

التاريخ
لينكس 5.13.

أمثلة
انظر landlock(7).

انظر أيضًا
landlock_add_rule(2)، landlock_restrict_self(2)، landlock(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.