| proc(5) | File Formats Manual | proc(5) |
نام (NAME)
proc - اطلاعات فرآیند، اطلاعات سیستم و سیستمفایل کاذب sysctl
توضیحات (DESCRIPTION)
سیستمفایل proc یک سیستمفایل کاذب (pseudo-filesystem) است که یک رابط برای ساختارهای داده هسته فراهم میکند. این سیستمفایل معمولاً در مسیر /proc سوار (mount) میشود. بهطور معمول، سیستم آن را بهصورت خودکار سوار میکند، اما همچنین میتواند بهصورت دستی با استفاده از دستوری مانند زیر سوار شود:
mount -t proc proc /proc
بیشتر فایلهای موجود در سیستمفایل proc فقطخواندنی هستند، اما برخی از فایلها قابل نوشتن میباشند و امکان تغییر متغیرهای هسته را فراهم میکنند.
گزینههای سوار کردن (Mount options)
سیستمفایل proc از گزینههای سوار کردن زیر پشتیبانی میکند:
- hidepid=n (از لینوکس 3.3)
- این گزینه مشخص میکند چه کسانی میتوانند به اطلاعات موجود در دایرکتوریهای /proc/pid دسترسی داشته باشند. آرگومان n یکی از مقادیر زیر است:
- 0
- همه افراد میتوانند به تمام دایرکتوریهای /proc/pid دسترسی داشته باشند. این رفتار سنتی است، و اگر این گزینه سوار کردن مشخص نشود، مقدار پیشفرض خواهد بود.
- 1
- کاربران نمیتوانند به فایلها و زیردایرکتوریهای درون دایرکتوریهای /proc/pid بهجز دایرکتوریهای متعلق به خودشان دسترسی داشته باشند (خود دایرکتوریهای /proc/pid همچنان قابل مشاهده باقی میمانند). فایلهای حساس مانند /proc/pid/cmdline و /proc/pid/status اکنون در برابر سایر کاربران محافظت میشوند. این امر بررسی اینکه آیا کاربری در حال اجرای برنامهای خاص است را غیرممکن میسازد (مشروط بر اینکه برنامه از راههای دیگر هویتش را با رفتارش آشکار نکند).
- 2
- مانند حالت ۱، اما علاوه بر آن دایرکتوریهای /proc/pid متعلق به سایر کاربران نامرئی میشوند. این بدان معناست که ورودیهای /proc/pid دیگر نمیتوانند برای کشف PIDهای موجود روی سیستم استفاده شوند. این کار مانع از آگاهی از وجود فرآیندی با یک مقدار 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 را که به وظایف (tasks) مربوط نمیشوند پنهان میکند.
نمای کلی (Overview)
در زیر مسیر /proc، گروههای کلی زیر از فایلها و زیردایرکتوریها قرار دارند:
- /proc/pid (زیردایرکتوریها)
- به proc_pid(5) مراجعه کنید.
- هر یک از این زیردایرکتوریها حاوی فایلها و زیردایرکتوریهایی است که اطلاعات مربوط به فرآیند با شناسه فرآیند (PID) متناظر را ارائه میدهند.
- در زیر هر یک از دایرکتوریهای /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)
نکات (NOTES)
بسیاری از فایلها حاوی رشتههایی هستند (مانند متغیرهای محیطی و خط فرمان) که در قالب داخلی ذخیره شدهاند، و زیرفیلدهای آنها با بایتهای تهی ('\0') خاتمه مییابند. هنگام بررسی چنین فایلهایی، ممکن است متوجه شوید که اگر از دستوری با ساختار زیر برای نمایش آنها استفاده کنید، خروجی خواناتر خواهد بود:
$ cat file | tr '\000' '\n'
همچنین ببینید (SEE ALSO)
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.
| 2026-02-08 | Linux man-pages 6.19 |