proc(5)

الاسم
proc - معلومات العمليات، ومعلومات النظام، ونظام ملفات sysctl الوهمي

الوصف
نظام ملفات proc هو نظام ملفات وهمي يوفر واجهة لهياكل بيانات النواة. يُوصل عادةً عند /proc. وفي العادة، يُوصل آليًا بواسطة النظام، ولكن يمكن وصله يدويًا أيضًا باستخدام أمر مثل:

    mount -t proc proc /proc

معظم الملفات في نظام ملفات proc للقراءة فقط، ولكن بعض الملفات قابلة للكتابة، مما يسمح بتغيير متغيرات النواة.

  خيارات الوصل
يدعم نظام ملفات proc خيارات الوصل التالية:

hidepid=n (منذ لينكس 3.3)
    يتحكم هذا الخيار فيمن يمكنه الوصول إلى المعلومات في أدلة /proc/pid. المعامل n هو أحد القيم التالية:

    0   يمكن للجميع الوصول إلى كافة أدلة /proc/pid. هذا هو السلوك التقليدي، والمبدئي إذا لم يُحدد خيار الوصل هذا.

    1   لا يجوز للمستخدمين الوصول إلى الملفات والأدلة الفرعية داخل أي من أدلة /proc/pid باستثناء أدلتهم الخاصة (تظل أدلة /proc/pid نفسها مرئية). أصبحت الملفات الحساسة مثل /proc/pid/cmdline و /proc/pid/status محمية الآن ضد المستخدمين الآخرين. وهذا يجعل من المستحيل معرفة ما إذا كان أي مستخدم يشغل برنامجًا معينًا (طالما أن البرنامج لا يكشف عن نفسه بطريقة أخرى من خلال سلوكه).

    2   كما في الوضع 1، ولكن بالإضافة إلى ذلك، تصبح أدلة /proc/pid التابعة للمستخدمين الآخرين غير مرئية. وهذا يعني أنه لم يعد من الممكن استخدام مدخلات /proc/pid لاكتشاف معرفات العمليات (PIDs) على النظام. لا يخفي هذا حقيقة وجود عملية بمعرف PID معين (يمكن معرفة ذلك بوسائل أخرى، مثل "kill -0 $PID")، ولكنه يخفي معرف المستخدم (UID) ومعرف المجموعة (GID) للعملية، واللذين يمكن معرفتهما لولا ذلك باستخدام stat(2) على دليل /proc/pid. يؤدي هذا إلى تعقيد مهمة المهاجم في جمع المعلومات عن العمليات الجارية بشكل كبير (مثل اكتشاف ما إذا كان هناك عفريت يعمل بامتيازات مرتفعة، أو ما إذا كان مستخدم آخر يشغل برنامجًا حساسًا، أو ما إذا كان مستخدمون آخرون يشغلون أي برنامج على الإطلاق، وما إلى ذلك).

    gid=gid (منذ لينكس 3.3)
        يحدد معرف مجموعة يُصرح لأعضائها بمعرفة معلومات العملية المحظورة بخلاف ذلك بواسطة hidepid (أي أن المستخدمين في هذه المجموعة يتصرفون كما لو وصل /proc بخيار hidepid=0). ينبغي استخدام هذه المجموعة بدلاً من أساليب مثل وضع المستخدمين غير الجذر في ملف sudoers(5).

subset=pid (منذ لينكس 5.8)
    إظهار المجموعة الفرعية المحددة فقط من procfs، مع إخفاء كافة ملفات وأدلة المستوى رئيس في procfs التي لا تتعلق بالمهام.

  نظرة عامة
توجد تحت /proc المجموعات العامة التالية من الملفات والأدلة الفرعية:

أدلة /proc/pid الفرعية
    انظر proc_pid(5).

    يحتوي كل دليل من هذه الأدلة الفرعية على ملفات وأدلة فرعية تعرض معلومات حول العملية ذات معرف العملية المطابق.

    تحت كل دليل من أدلة /proc/pid، يحتوي دليل فرعي باسم task على أدلة فرعية بصيغة task/tid، والتي تحتوي على معلومات مطابقة لكل خيط من خيوط العملية، حيث tid هو معرف خيط النواة للخيط.

    تكون أدلة /proc/pid الفرعية مرئية عند التنقل خلال /proc باستخدام getdents(2) (وبالتالي تكون مرئية عند استخدام ls(1) لعرض محتويات /proc).

أدلة /proc/tid الفرعية
    انظر proc_tid(5).

    يحتوي كل دليل من هذه الأدلة الفرعية على ملفات وأدلة فرعية تعرض معلومات حول الخيط ذي معرف الخيط المطابق. محتويات هذه الأدلة هي نفسها محتويات أدلة /proc/pid/task/tid المطابقة.

    أدلة /proc/tid الفرعية ليست مرئية عند التنقل خلال /proc باستخدام getdents(2) (وبالتالي لا تظهر عند استخدام ls(1) لعرض محتويات /proc).

/proc/self
    انظر proc_self(5).

    عندما تصل عملية ما إلى هذا الارتباط الرمزي السحري، فإنه يشير إلى دليل /proc/pid الخاص بالعملية نفسها.

/proc/thread-self
    انظر proc_thread-self(5).

    عندما يصل خيط ما إلى هذا الارتباط الرمزي السحري، فإنه يشير إلى دليل /proc/self/task/tid الخاص بالعملية نفسها.

/proc/[a-z]*

    تعرض ملفات وأدلة فرعية أخرى متنوعة تحت /proc معلومات على مستوى النظام.

    انظر أيضًا:

    proc_apm(5)
    proc_buddyinfo(5)
    proc_bus(5)
    proc_cgroups(5)
    proc_cmdline(5)
    proc_config.gz(5)
    proc_cpuinfo(5)
    proc_crypto(5)
    proc_devices(5)
    proc_diskstats(5)
    proc_dma(5)
    proc_driver(5)
    proc_execdomains(5)
    proc_fb(5)
    proc_filesystems(5)
    proc_fs(5)
    proc_ide(5)
    proc_interrupts(5)
    proc_iomem(5)
    proc_ioports(5)
    proc_kallsyms(5)
    proc_kcore(5)
    proc_key-users(5)
    proc_keys(5)
    proc_kmsg(5)
    proc_kpagecgroup(5)
    proc_kpagecount(5)
    proc_kpageflags(5)
    proc_ksyms(5)
    proc_loadavg(5)
    proc_locks(5)
    proc_malloc(5)
    proc_meminfo(5)
    proc_modules(5)
    proc_mounts(5)
    proc_mtrr(5)
    proc_net(5)
    proc_partitions(5)
    proc_pci(5)
    proc_profile(5)
    proc_scsi(5)
    proc_slabinfo(5)
    proc_stat(5)
    proc_swaps(5)
    proc_sys(5)
    proc_sysrq-trigger(5)
    proc_sysvipc(5)
    proc_timer_list(5)
    proc_timer_stats(5)
    proc_tty(5)
    proc_uptime(5)
    proc_version(5)
    proc_vmstat(5)
    proc_zoneinfo(5)

ملاحظات
تحتوي العديد من الملفات على سلاسل نصية (مثل البيئة وسطر الأوامر) بالتنسيق الداخلي، مع حقول فرعية تنتهي ببايتات فارغة ('\0'). عند فحص هذه الملفات، قد تجد أن النتائج تكون مقروءة أكثر إذا استخدمت أمرًا بالصيغة التالية لعرضها:

    $ cat file | tr '\000' '\n'

انظر أيضًا
cat(1)، dmesg(1)، find(1)، free(1)، htop(1)، init(1)، ps(1)، pstree(1)، tr(1)، uptime(1)، chroot(2)، mmap(2)، readlink(2)، syslog(2)، slabinfo(5)، sysfs(5)، hier(7)، namespaces(7)، time(7)، arp(8)، hdparm(8)، ifconfig(8)، lsmod(8)، lspci(8)، mount(8)، netstat(8)، procinfo(8)، route(8)، sysctl(8)

ملفات مصدر نواة لينكس: Documentation/filesystems/proc.rst، و Documentation/admin-guide/sysctl/fs.rst، و Documentation/admin-guide/sysctl/kernel.rst، و Documentation/admin-guide/sysctl/net.rst، و Documentation/admin-guide/sysctl/vm.rst.

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

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

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