PAM_CAP(8) System Manager's Manual PAM_CAP(8)

pam_cap - ماژول PAM برای مدیریت قابلیتها (Capabilities)

[service-name] auth control-flag pam_cap [options]

از ماژول pam_cap می‌توان برای مشخص کردن قابلیت‌های ارث‌بر (Inheritable) جهت درخت‌های فرایندی ریشه‌گرفته از برنامه PAM استفاده کرد. این ماژول همچنین از مسدود کردن قابلیت‌های بردار محدودکننده (Bounding) و افزودن قابلیت‌های بردار محیطی (Ambient) پشتیبانی می‌کند.

برای کارکرد درست برنامه‌های عمومی PAM، برنامه باید حداقل با قابلیت CAP_SETPCAP فعال‌شده در پرچم قابلیت‌های مجاز (Permitted) خود اجرا شود. بسیاری از برنامه‌های PAM به عنوان کاربر ریشه (root) اجرا می‌شوند که تمامی بیت‌های مجموعه محدودکننده (Bounding) در آن فعال است، بنابراین این نیازمندی معمولاً برآورده می‌شود. برای اعطای یک قابلیت در بردار محیطی (Ambient)، بیت مجاز (Permitted) متناظر با آن نیز باید برای برنامه در دسترس باشد.

ماژول pam_cap یک ماژول احراز هویت (auth) در Linux-PAM است. این ماژول قابلیت‌هایی را برای پشتیبانی از توابع pam_sm_authenticate() و pam_sm_setcred() فراهم می‌کند. تابع دوم است که عملاً سه‌تایی بردارهای قابلیت ارث‌بر، یعنی IAB پیکربندی‌شده را تغییر می‌دهد. در یک پیکربندی معمول برنامه، ممکن است خطی شبیه به این داشته باشید:

auth    optional    pam_cap.so

آرگومان‌های ماژول عبارتند از:

○
debug: اگرچه پشتیبانی می‌شود، اما در حال حاضر هیچ عملیاتی انجام نمی‌دهد (no-op).
○
config=/path/to/file: لغو و بازنویسی پیکربندی پیش‌فرض برای این ماژول. مقدار پیش‌فرض نامشخص برای این فایل، /etc/security/capability.conf است. توجه داشته باشید که config=/dev/null یک مقدار معتبر است. برای موقعیت‌هایی که ممکن است این مقدار مناسب باشد، توضیحات default= را در ادامه ببینید.
○
keepcaps: این بیشترین کمکی است که ماژول pam_cap.so می‌تواند انجام دهد تا به برنامه در پشتیبانی از به‌کارگیری بردار قابلیت‌های محیطی (Ambient) کمک کند. در حال حاضر، پشتیبانی برنامه‌ها از مجموعه قابلیت‌های Ambient ضعیف است.
○
autoauth: این آرگومان موجب می‌شود در صورت وجود کاربر مورد احراز هویت (PAM_USER)، ماژول pam_cap.so مقدار PAM_SUCCESS را بازگرداند. عدم وجود این آرگومان باعث می‌شود که pam_cap.so تنها زمانی PAM_SUCCESS را بازگرداند که PAM_USER تحت پوشش یک قاعده مشخص در فایل پیکربندی حاکم باشد.
○
default=IAB: در صورتی که فایل پیکربندی حاکم حاوی یک قاعده "*" باشد، این آرگومان نادیده گرفته می‌شود. اگر چنین قاعده‌ای وجود نداشته باشد، سه‌تایی IAB در انتهای فایل پیکربندی درج می‌شود و برای تمامی کاربران PAM_USER که تحت پوشش قواعد قبلی قرار نگرفته‌اند اعمال خواهد شد. توجه داشته باشید در صورتی که می‌خواهید همه کاربران PAM_USER تحت پوشش این قاعده پیش‌فرض قرار گیرند، می‌توانید آرگومان config=/dev/null را به ماژول ارسال کنید.
○
defer: این آرگومان ترتیبی می‌دهد که قابلیت‌های IAB اعطاشده به یک کاربر، به اندازه کافی دیر در پشته احراز هویت Linux-PAM اضافه شوند تا تثبیت گردند؛ یعنی پس از (after) آن‌که برنامه فراخوانی setuid(UID) خود را انجام دهد. بدین ترتیب، این آرگومان در کنار آرگومان ماژول keepcaps به چنین برنامه‌های سازگاری امکان می‌دهد تا از اعطای قابلیت‌های بردار محیطی (Ambient) با pam_cap.so پشتیبانی کنند.

pam.conf(5), capability.conf(5), cap_text_formats(7), pam(8).

2025-03-19