proc_sys_fs(5)

الاسم
/proc/sys/fs/ - متغيرات النواة المتعلقة بأنظمة الملفات

الوصف

/proc/sys/fs/
    يحتوي هذا الدليل على الملفات والأدلة الفرعية لمتغيرات النواة المتعلقة بأنظمة الملفات.

/proc/sys/fs/aio-max-nr
/proc/sys/fs/aio-nr (كلاهما منذ لينكس 2.6.4)
    aio-nr هو المجموع الجاري لعدد الأحداث المحددة بواسطة استدعاءات io_setup(2) لجميع سياقات AIO النشطة حالياً. إذا وصل aio-nr إلى aio-max-nr، فإن io_setup(2) سيفشل مع الخطأ EAGAIN. رفع aio-max-nr لا يؤدي إلى التخصيص المسبق أو تغيير حجم أي هياكل بيانات للنواة.

/proc/sys/fs/binfmt_misc
    يمكن العثور على توثيق الملفات في هذا الدليل في مصدر نواة لينكس في الملف Documentation/admin-guide/binfmt-misc.rst (أو في Documentation/binfmt_misc.txt على النوى الأقدم).

/proc/sys/fs/dentry-state (منذ لينكس 2.2)
    يحتوي هذا الملف على معلومات حول حالة خبيئة الدليل (dcache). يحتوي الملف على ستة أرقام: nr_dentry، nr_unused، age_limit (العمر بالثواني)، want_pages (الصفحات المطلوبة من النظام) وقيمتين وهميتين.

    •   nr_dentry هو عدد مدخلات dentry المخصصة (مدخلات dcache). هذا الحقل غير مستخدم في لينكس 2.2.

    •   nr_unused هو عدد مدخلات dentry غير المستخدمة.

    •   age_limit هو العمر بالثواني الذي يمكن بعده استعادة مدخلات dcache عندما تكون الذاكرة شحيحة.

    •   want_pages غير صفري عندما تستدعي النواة shrink_dcache_pages() ولم يتم تقليم dcache بعد.

/proc/sys/fs/dir-notify-enable
    يمكن استخدام هذا الملف لتعطيل أو تمكين واجهة dnotify الموصوفة في fcntl(2) على مستوى النظام. القيمة 0 في هذا الملف تعطل الواجهة، والقيمة 1 تمكّنها.

/proc/sys/fs/dquot-max
    يظهر هذا الملف الحد الأقصى لعدد مدخلات حصة القرص المخبأة. في بعض أنظمة (2.4)، لا يكون موجوداً. إذا كان عدد مدخلات حصة القرص المخبأة الحرة منخفضاً جداً وكان لديك عدد هائل من مستخدمي النظام المتزامنين، فقد ترغب في رفع الحد.

/proc/sys/fs/dquot-nr
    يظهر هذا الملف عدد مدخلات حصة القرص المخصصة وعدد مدخلات حصة القرص الحرة.

/proc/sys/fs/epoll/ (منذ لينكس 2.6.28)
    يحتوي هذا الدليل على الملف max_user_watches، الذي يمكن استخدامه للحد من كمية ذاكرة النواة المستهلكة بواسطة واجهة epoll. لمزيد من التفاصيل، انظر epoll(7).

/proc/sys/fs/file-max
    يحدد هذا الملف حداً على مستوى النظام لعدد الملفات المفتوحة لجميع العمليات. تفشل استدعاءات النظام التي تواجه هذا الحد مع الخطأ ENFILE. (انظر أيضًا setrlimit(2)، الذي يمكن استخدامه بواسطة عملية لتعيين الحد لكل عملية، RLIMIT_NOFILE، على عدد الملفات التي قد تفتحها.) إذا حصلت على الكثير من رسائل الخطأ في سجل النواة حول نفاد مقابض الملفات (أوصاف الملفات المفتوحة) (ابحث عن "VFS: file-max limit <number> reached")، حاول زيادة هذه القيمة:

        echo 100000 > /proc/sys/fs/file-max

    يمكن للعمليات المميزة (CAP_SYS_ADMIN) تجاوز حد file-max.

/proc/sys/fs/file-nr
    يحتوي هذا الملف (للقراءة فقط) على ثلاثة أرقام: عدد مقابض الملفات المخصصة (أي عدد أوصاف الملفات المفتوحة؛ انظر open(2))؛ عدد مقابض الملفات الحرة؛ والحد الأقصى لعدد مقابض الملفات (أي نفس القيمة مثل /proc/sys/fs/file-max). إذا كان عدد مقابض الملفات المخصصة قريباً من الحد الأقصى، يجب أن تفكر في زيادة الحد الأقصى. قبل لينكس 2.6، كانت النواة تخصص مقابض الملفات ديناميكياً، لكنها لم تحررها مرة أخرى. بدلاً من ذلك، كانت مقابض الملفات الحرة تُحفظ في قائمة لإعادة التخصيص؛ تشير قيمة "مقابض الملفات الحرة" إلى حجم تلك القائمة. يشير العدد الكبير من مقابض الملفات الحرة إلى وجود ذروة سابقة في استخدام مقابض الملفات المفتوحة. منذ لينكس 2.6، تقوم النواة بإلغاء تخصيص مقابض الملفات المحررة، وقيمة "مقابض الملفات الحرة" تكون دائماً صفراً.

/proc/sys/fs/inode-max (موجود فقط حتى لينكس 2.2)
    يحتوي هذا الملف على الحد الأقصى لعدد عقد inode في الذاكرة. يجب أن تكون هذه القيمة أكبر بمقدار 3–4 مرات من القيمة في file-max، لأن stdin و stdout ومقابس الشبكة تحتاج أيضًا إلى inode لمعالجتها. عندما تنفد عقد inode بانتظام، تحتاج إلى زيادة هذه القيمة.

    بدءاً من لينكس 2.4، لم يعد هناك حد ثابت على عدد عقد inode، ويتم إزالة هذا الملف.

/proc/sys/fs/inode-nr
    يحتوي هذا الملف على القيمتين الأوليين من inode-state.

/proc/sys/fs/inode-state
    يحتوي هذا الملف على سبعة أرقام: nr_inodes و nr_free_inodes و preshrink وأربع قيم وهمية (صفر دائمًا).

    nr_inodes هو عدد عقد الإسناد (inodes) التي خصصها النظام. ويمثل nr_free_inodes عدد عقد الإسناد الحرة.

    يكون preshrink غير صفري عندما يكون nr_inodes > inode-max ويحتاج النظام إلى تقليم قائمة عقد الإسناد بدلاً من تخصيص المزيد؛ منذ لينكس 2.4، هذا الحقل هو قيمة وهمية (صفر دائمًا).

/proc/sys/fs/inotify/ (منذ لينكس 2.6.13)
    يحتوي هذا الدليل على الملفات max_queued_events و max_user_instances و max_user_watches، التي يمكن استخدامها لتحديد كمية ذاكرة النواة التي تستهلكها واجهة inotify. لمزيد من التفاصيل، انظر inotify(7).

/proc/sys/fs/lease-break-time
    يحدد هذا الملف فترة السماح التي تمنحها النواة لعملية تحمل إيجار ملف (fcntl(2)) بعد أن أرسلت إشارة إلى تلك العملية لإعلامها بأن عملية أخرى تنتظر فتح الملف. إذا لم يقم حامل الإيجار بإزالة أو تخفيض الإيجار خلال فترة السماح هذه، تكسر النواة الإيجار قسرًا.

/proc/sys/fs/leases-enable
    يمكن استخدام هذا الملف لتمكين أو تعطيل إيجارات الملفات (fcntl(2)) على مستوى النظام بأكمله. إذا كان هذا الملف يحتوي على القيمة 0، تكون الإيجارات معطلة. قيمة غير صفرية تمكن الإيجارات.

/proc/sys/fs/mount-max (منذ لينكس 4.9)
    تحدد القيمة في هذا الملف الحد الأقصى لعدد الوصلات (mounts) التي قد توجد في مساحة اسم الوصلات. القيمة المبدئية في هذا الملف هي 100,000.

/proc/sys/fs/mqueue/ (منذ لينكس 2.6.6)
    يحتوي هذا الدليل على الملفات msg_max و msgsize_max و queues_max، التي تتحكم في الموارد المستخدمة بواسطة قوائم رسائل POSIX. انظر mq_overview(7) للتفاصيل.

/proc/sys/fs/nr_open (منذ لينكس 2.6.25)
    يفرض هذا الملف سقفًا على القيمة التي يمكن رفع حد المورد RLIMIT_NOFILE إليها (انظر getrlimit(2)). يُطبق هذا السقف على كل من العمليات غير المميزة والمميزة. القيمة المبدئية في هذا الملف هي 1048576. (قبل لينكس 2.6.25، كان السقف لـ RLIMIT_NOFILE مشفرًا بنفس القيمة.)

/proc/sys/fs/overflowgid
/proc/sys/fs/overflowuid
    تسمح لك هذه الملفات بتغيير قيمة UID و GID الثابتة. المبدئي هو 65534. تدعم بعض أنظمة الملفات فقط UIDs و GIDs ذات 16 بت، على الرغم من أن UIDs و GIDs في لينكس هي 32 بت. عندما يُوصل أحد أنظمة الملفات هذه مع تمكين الكتابة، يُترجم أي UID أو GID قد يتجاوز 65535 إلى قيمة الفائض قبل كتابته على القرص.

/proc/sys/fs/pipe-max-size (منذ لينكس 2.6.35)
    انظر pipe(7).

/proc/sys/fs/pipe-user-pages-hard (منذ لينكس 4.5)
    انظر pipe(7).

/proc/sys/fs/pipe-user-pages-soft (منذ لينكس 4.5)
    انظر pipe(7).

/proc/sys/fs/protected_fifos (منذ لينكس 4.19)
    القيمة في هذا الملف هي/يمكن تعيينها إلى واحدة مما يلي:

    0   الكتابة إلى FIFOs غير مقيدة.

    1   لا تسمح بـ O_CREAT open(2) على FIFOs التي لا يملكها المستدعي في أدلة قابلة للكتابة عالميًا ذات بت لزج، ما لم تكن FIFO مملوكة لمالك الدليل.

    2   كما هو الحال للقيمة 1، ولكن القيد ينطبق أيضًا على الأدلة القابلة للكتابة للمجموعة ذات البت اللزج.

    الهدف من الحمايات المذكورة أعلاه هو تجنب الكتابات غير المقصودة إلى FIFO يتحكم بها مهاجم عندما يتوقع برنامج إنشاء ملف عادي.

/proc/sys/fs/protected_hardlinks (منذ لينكس 3.6)
    عندما تكون القيمة في هذا الملف 0، لا تُفرض أي قيود على إنشاء الروابط الصلبة (أي، هذا هو السلوك التاريخي قبل لينكس 3.6). عندما تكون القيمة في هذا الملف 1، يمكن إنشاء رابط صلب إلى ملف هدف فقط إذا تحقق أحد الشروط التالية:

    •   تمتلك العملية المستدعية القدرة CAP_FOWNER في مساحة اسم المستخدم الخاصة بها ويكون لـ UID الملف تعيين في المساحة.

    •   يتطابق UID نظام الملفات للعملية التي تنشئ الرابط مع المالك (UID) للملف الهدف (كما هو موصوف في credentials(7)، يكون UID نظام الملفات لعملية ما عادةً مماثلاً لـ UID الفعال الخاص بها).

    •   جميع الشروط التالية صحيحة:

        •   الهدف هو ملف عادي؛

        •   الملف الهدف لا يحتوي على بت وضع set-user-ID مفعلة؛

        •   الملف الهدف لا يحتوي على كل من بت وضع set-group-ID وبت قابلية التنفيذ للمجموعة مفعلتين؛ و

        •   المتصل لديه صلاحية قراءة وكتابة الملف الهدف (إما عبر قناع صلاحيات الملف أو لأنه يمتلك القدرات المناسبة).

    القيمة المبدئية في هذا الملف هي 0. تعيين القيمة إلى 1 يمنع فئة طويلة الأمد من المشكلات الأمنية الناتجة عن سباقات وقت الفحص ووقت الاستخدام القائمة على الروابط الثابتة، والتي تظهر غالبًا في الأدلة القابلة للكتابة عالميًا مثل /tmp. الطريقة الشائعة لاستغلال هذا الخلل هي عبور حدود الامتياز عند اتباع رابط ثابت معين (أي، عملية جذر تتبع رابطًا ثابتًا أنشأه مستخدم آخر). بالإضافة إلى ذلك، على الأنظمة التي لا تحتوي على أقسام منفصلة، يمنع هذا المستخدمين غير المصرح لهم من "تثبيت" ملفات set-user-ID وset-group-ID الضعيفة ضد ترقيتها من قبل المسؤول، أو الربط بالملفات الخاصة.

/proc/sys/fs/protected_regular (منذ لينكس 4.19)
    القيمة في هذا الملف هي/يمكن تعيينها إلى واحدة مما يلي:

    0   الكتابة إلى الملفات العادية غير مقيدة.

    1   لا تسمح بـ O_CREAT open(2) على الملفات العادية التي لا يملكها المتصل في الأدلة اللاصقة القابلة للكتابة عالميًا، ما لم يكن الملف العادي مملوكًا لمالك الدليل.

    2   كما هو الحال للقيمة 1، ولكن القيد ينطبق أيضًا على الأدلة القابلة للكتابة للمجموعة ذات البت اللزج.

    الهدف من الحمايات المذكورة أعلاه مشابه لـ protected_fifos، لكنه يسمح للتطبيق بتجنب الكتابة إلى ملف عادي يتحكم به مهاجم، حيث توقع التطبيق إنشاء واحد.

/proc/sys/fs/protected_symlinks (منذ لينكس 3.6)
    عندما تكون القيمة في هذا الملف 0، لا تُفرض أي قيود على اتباع الروابط الرمزية (أي، هذا هو السلوك التاريخي قبل Linux 3.6). عندما تكون القيمة في هذا الملف 1، تُتبع الروابط الرمزية فقط في الظروف التالية:

    •   UID نظام الملفات للعملية التي تتبع الرابط يطابق المالك (UID) للرابط الرمزي (كما هو موصوف في credentials(7)، UID نظام الملفات للعملية عادة ما يكون مماثلاً لـ UID الفعال الخاص بها)؛

    •   الرابط ليس في دليل لاصق قابل للكتابة عالميًا؛ أو

    •   الرابط الرمزي والدليل الأب لهما نفس المالك (UID)

    استدعاء النظام الذي يفشل في اتباع رابط رمزي بسبب القيود المذكورة أعلاه يُرجع الخطأ EACCES في errno.

    القيمة المبدئية في هذا الملف هي 0. تعيين القيمة إلى 1 يتجنب فئة طويلة الأمد من المشكلات الأمنية القائمة على سباقات وقت الفحص ووقت الاستخدام عند الوصول إلى الروابط الرمزية.

/proc/sys/fs/suid_dumpable (منذ لينكس 2.6.13)
    القيمة في هذا الملف تُسند إلى علم "dumpable" للعملية في الظروف الموصوفة في prctl(2). في الواقع، القيمة في هذا الملف تحدد ما إذا كانت ملفات التفريغ الأساسي تُنتج لثنائيات set-user-ID أو المحمية/الملوثة بخلاف ذلك. إعداد "dumpable" يؤثر أيضًا على ملكية الملفات في دليل /proc/pid للعملية، كما هو موصوف أعلاه.

    يمكن تحديد ثلاث قيم صحيحة مختلفة:

    0 (default)
        هذا يوفر السلوك التقليدي (قبل Linux 2.6.13). لن يُنتج تفريغ أساسي لعملية غيرت بيانات الاعتماد (عن طريق استدعاء seteuid(2)، setgid(2)، أو ما شابه، أو عن طريق تنفيذ برنامج set-user-ID أو set-group-ID) أو التي لا يحتوي ثنائيها على صلاحية قراءة مفعلة.

    1 ("debug")
        جميع العمليات تُفرغ الأساسي عندما يكون ذلك ممكنًا. (الأسباب التي قد تجعل العملية لا تُفرغ الأساسي مع ذلك موصوفة في core(5).) التفريغ الأساسي مملوك لـ UID نظام الملفات للعملية المفَرِّغة ولا يُطبق أي أمان. هذا مخصص لحالات تصحيح أخطاء النظام فقط: هذا الوضع غير آمن لأنه يسمح للمستخدمين غير المميزين بفحص محتويات الذاكرة للعمليات المميزة.

    2 ("suidsafe")
        أي ثنائي لا يُفرغ عادة (انظر "0" أعلاه) يُفرغ قابلًا للقراءة من قبل الجذر فقط. هذا يسمح للمستخدم بإزالة ملف التفريغ الأساسي ولكن ليس بقراءته. لأسباب أمنية، التفريغات الأساسية في هذا الوضع لن تستبدل بعضها البعض أو الملفات الأخرى. هذا الوضع مناسب عندما يحاول المسؤولون تصحيح مشكلات في بيئة عادية.

        بالإضافة إلى ذلك، منذ Linux 3.6، يجب أن يكون /proc/sys/kernel/core_pattern إما مسارًا مطلقًا أو أمر أنبوب، كما هو مفصل في core(5). ستُكتب تحذيرات إلى سجل النواة إذا لم يتبع core_pattern هذه القواعد، ولن يُنتج أي تفريغ أساسي.

    للحصول على تفاصيل تأثير إعداد "dumpable" للعملية على فحص وضع الوصول ptrace، انظر ptrace(2).

/proc/sys/fs/super-max
    يتحكم هذا الملف في العدد الأقصى من الكتل الفائقة، وبالتالي العدد الأقصى من أنظمة الملفات الموصولة التي يمكن للنواة امتلاكها. تحتاج فقط إلى زيادة super-max إذا احتجت لوصل أنظمة ملفات أكثر مما تسمح به القيمة الحالية في super-max.

/proc/sys/fs/super-nr
    يحتوي هذا الملف على عدد أنظمة الملفات الموصولة حالياً.

انظر أيضًا
proc(5)، ‏proc_sys(5)

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

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

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