PROC_PID_ATTR(5) فایلهای پیکربندی PROC_PID_ATTR(5)

/proc/pid/attr/ - ویژگیها و شناسههای امنیتی فرایند برای ماژولهای امنیتی لینوکس

/proc/pid/attr/
فایل‌های این دایرکتوری یک رابط برنامه‌نویسی کاربردی (API) برای ماژول‌های امنیتی فراهم می‌کنند. محتویات این دایرکتوری فایل‌هایی هستند که می‌توان برای تنظیم ویژگی‌های مرتبط با امنیت آن‌ها را خواند و در آن‌ها نوشت. این دایرکتوری برای پشتیبانی از SELinux اضافه شد، اما هدف این بود که این API به اندازه کافی عمومی باشد تا از سایر ماژول‌های امنیتی نیز پشتیبانی کند. برای اهداف توضیحی، مثال‌هایی از چگونگی استفاده SELinux از این فایل‌ها در زیر ارائه شده است.
این دایرکتوری تنها در صورتی وجود دارد که هسته با CONFIG_SECURITY پیکربندی شده باشد.
/proc/pid/attr/current (از لینوکس 2.6.0)
محتویات این فایل بیانگر ویژگی‌های امنیتی فعلی فرایند است.
در SELinux، این فایل برای دریافت زمینه امنیتی یک فرایند استفاده می‌شود. پیش از لینوکس 2.6.11، از این فایل نمی‌شد برای تنظیم زمینه امنیتی استفاده کرد (عملیات نوشتن همواره رد می‌شد)، چرا که SELinux گذارهای امنیتی فرایند را به execve(2) محدود کرده بود (توضیحات مربوط به /proc/pid/attr/exec در ادامه را ببینید). از لینوکس 2.6.11، SELinux این محدودیت را برداشت و شروع به پشتیبانی از عملیات «تنظیم» (set) از طریق نوشتن در این گره در صورت مجاز بودن توسط خط‌مشی کرد؛ اگرچه استفاده از این عملیات فقط برای برنامه‌هایی مناسب است که برای حفظ هرگونه تفکیک مورد نظر بین زمینه‌های امنیتی قدیم و جدید مورد اعتماد باشند.
پیش از لینوکس 2.6.28، SELinux به ریسه‌ها درون یک فرایند چندریسه‌ای اجازه نمی‌داد زمینه امنیتی خود را از طریق این گره تنظیم کنند، چرا که این امر موجب ناپایداری و ناسازگاری میان زمینه‌های امنیتی ریسه‌هایی می‌شد که فضای حافظه یکسانی را به اشتراک می‌گذاشتند. از لینوکس 2.6.28، SELinux این محدودیت را برداشت و پشتیبانی از عملیات «تنظیم» را برای ریسه‌ها درون یک فرایند چندریسه‌ای آغاز کرد، مشروط بر اینکه زمینه امنیتی جدید توسط زمینه امنیتی قدیم مقید (bounded) شده باشد، جایی که رابطه قیدشده در خط‌مشی تعریف شده و تضمین می‌کند که زمینه امنیتی جدید دارای زیرمجموعه‌ای از مجوزهای زمینه امنیتی قدیم است.
سایر ماژول‌های امنیتی نیز ممکن است پشتیبانی از عملیات «تنظیم» از طریق نوشتن در این گره را انتخاب کنند.
/proc/pid/attr/exec (از لینوکس 2.6.0)
این فایل بیانگر ویژگی‌هایی است که پس از فراخوان بعدی execve(2) به فرایند تخصیص می‌یابد.
در SELinux، این فایل برای پشتیبانی از گذار نقش/دامنه مورد نیاز است و execve(2) نقطه ترجیحی برای انجام چنین گذارهایی است زیرا کنترل بهتری را بر راه‌اندازی اولیه فرایند در برچسب امنیتی جدید و وراثت وضعیت ارائه می‌دهد. در SELinux، این ویژگی پس از execve(2) بازنشانی می‌شود تا برنامه جدید برای هر فراخوان execve(2) که ممکن است اجرا کند، به رفتار پیش‌فرض بازگردد. در SELinux، یک فرایند فقط می‌تواند ویژگی /proc/pid/attr/exec مربوط به خودش را تنظیم کند.
/proc/pid/attr/fscreate (از لینوکس 2.6.0)
این فایل بیانگر ویژگی‌هایی است که به فایل‌های ایجادشده با فراخوان‌های بعدی open(2)، mkdir(2)، symlink(2) و mknod(2) اختصاص می‌یابد.
سامانه SELinux از این فایل برای پشتیبانی از ایجاد یک فایل (با استفاده از فراخوان‌های سیستمی یادشده) در وضعیتی امن بهره می‌برد تا هیچ خطری برای به دست آوردن دسترسی نامناسب بین زمان ایجاد و زمان تنظیم ویژگی‌ها وجود نداشته باشد. در SELinux، این ویژگی پس از execve(2) بازنشانی می‌شود تا برنامه جدید برای هر فراخوان ایجاد فایلی که ممکن است اجرا کند به رفتار پیش‌فرض بازگردد، اما این ویژگی در طول چندین فراخوان ایجاد فایل درون یک برنامه پایدار خواهد ماند مگر اینکه صراحتاً بازنشانی شود. در SELinux، یک فرایند فقط می‌تواند ویژگی /proc/pid/attr/fscreate مربوط به خودش را تنظیم کند.
/proc/pid/attr/keycreate (از لینوکس 2.6.18)
اگر فرایندی یک زمینه امنیتی در این فایل بنویسد، تمام کلیدهایی که پس از آن ایجاد می‌شوند (add_key(2)) با این زمینه برچسب‌گذاری خواهند شد. برای اطلاعات بیشتر، فایل منبع هسته Documentation/security/keys/core.rst (یا فایل Documentation/security/keys.txt بین لینوکس 3.0 و لینوکس 4.13، یا Documentation/keys.txt پیش از لینوکس 3.0) را ببینید.
/proc/pid/attr/prev (از لینوکس 2.6.0)
این فایل شامل زمینه امنیتی فرایند پیش از آخرین فراخوان execve(2) است؛ یعنی مقدار قبلی /proc/pid/attr/current.
/proc/pid/attr/socketcreate (از لینوکس 2.6.18)
اگر فرایندی یک زمینه امنیتی در این فایل بنویسد، تمام سوکت‌هایی که پس از آن ایجاد می‌شوند با این زمینه برچسب‌گذاری خواهند شد.

proc(5)

مه ۲۰۲۵ man-pages