Scroll to navigation

landlock_restrict_self(2) System Calls Manual landlock_restrict_self(2)

الاسم

landlock_restrict_self - فرض مجموعة قواعد Landlock

المكتبة

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

موجز

#include <linux/landlock.h>  /* تعريف ثوابت LANDLOCK_* */
#include <sys/syscall.h>     /* تعريف ثوابت SYS_* */
int syscall(SYS_landlock_restrict_self, int ruleset_fd,
            uint32_t flags);

الوصف

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

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

لفرض مجموعة قواعد، يجب أن يمتلك المستدعي صلاحية CAP_SYS_ADMIN في نطاق المستخدم الخاص به، أو يجب أن يكون الخيط قد ضبط بت no_new_privs مسبقًا. كما هو الحال مع seccomp(2)، يتجنب هذا السيناريوهات حيث يمكن للعمليات غير المميزة التأثير على سلوك الأطفال المميزين (مثل بسبب ثنائيات set-user-ID). إذا لم يكن هذا البت قد ضُبط من قبل سلف لهذا الخيط، يجب على الخيط إجراء الاستدعاء التالي:

prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
    

ruleset_fd هو واصف ملف مجموعة قواعد Landlock تم الحصول عليه باستخدام landlock_create_ruleset(2) وتم ملؤه بالكامل بمجموعة من الاستدعاءات لـ landlock_add_rule(2).

يجب أن يكون flags صفرًا.

قيمة الإرجاع

عند النجاح، تُرجع landlock_restrict_self() 0.

الأخطاء

يمكن أن تفشل landlock_restrict_self() للأسباب التالية:

نواة الحاسوب تدعم Landlock لكنه عُطّل في وقت الإقلاع.
flags ليست 0.
ruleset_fd ليس واصف ملف للخيط الحالي.
ruleset_fd ليس واصف ملف مجموعة قواعد.
لا يمتلك ruleset_fd صلاحية قراءة لمجموعة القواعد الأساسية، أو أن الخيط المستدعي لا يعمل مع no_new_privs، أو لا يمتلك CAP_SYS_ADMIN في نطاق المستخدم الخاص به.
تم الوصول إلى الحد الأقصى لعدد مجموعات القواعد المركبة للخيط المستدعي. هذا الحد هو 64 حاليًا.

المعايير

لينكس.

التاريخ

لينكس 5.13.

أمثلة

انظر landlock(7).

انظر أيضًا

landlock_create_ruleset(2), landlock_add_rule(2), landlock(7)

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

2 مايو 2024 صفحات دليل لينكس 6.9.1