PAM(8) دستورات مدیریت سیستم PAM(8)

PAM - ماژولهای احراز هویت با قابلیت اتصال در لینوکس (Pluggable Authentication Modules)

چارچوب PAM ساختاری ماژولار برای احراز هویت، مدیریت حسابهای کاربری، کنترل نشستها و مدیریت گذرواژهها در سیستمعاملهای لینوکس فراهم میکند.

این راهنما به عنوان مقدمه‌ای کوتاه برای Linux-PAM ارائه شده است. برای اطلاعات بیشتر، خواننده به Linux-PAM system administrators' guide ارجاع داده می‌شود.

Linux-PAM سیستمی متشکل از کتابخانه‌ها است که وظایف احراز هویت برنامه‌ها (سرویس‌ها) را در سیستم بر عهده دارد. این کتابخانه یک واسط عمومی پایدار (Application Programming Interface - API) فراهم می‌کند که برنامه‌های اعطاکننده امتیاز (مانند login(1) و su(1)) برای انجام وظایف استاندارد احراز هویت به آن رجوع می‌کنند.

ویژگی اصلی رویکرد PAM در این است که سازوکار احراز هویت به صورت پویا قابل‌پیکربندی است. به عبارت دیگر، مدیر سیستم آزاد است انتخاب کند که هر برنامه ارائه‌دهنده سرویس به چه شکل کاربران را احراز هویت کند. این پیکربندی پویا از طریق محتویات تک‌فایل پیکربندی Linux-PAM در مسیر /etc/pam.conf تنظیم می‌شود. روش جایگزین و البته مرجح، انجام پیکربندی توسط فایل‌های مجزا در شاخه pam.d است. وجود این پوشه باعث می‌شود که Linux-PAM فایل /etc/pam.conf را نادیده بگیرد (ignore).

فایل‌های پیکربندی PAM ارائه‌شده از سوی توزیع ممکن است در دایرکتوری سیستمی /usr/lib/pam.d/ یا پوشه سفارشی خاص توزیع‌کننده به‌جای پوشه پیکربندی ماشین /etc/pam.d/ نصب شوند. در صورتی که فایل پیکربندی محلی پیدا نشود، از فایل ارائه‌شده توسط توزیع استفاده می‌شود. تمامی فایل‌های موجود در /etc/pam.d/ بر فایل‌های همنام در سایر پوشه‌ها اولویت دارند.

از دیدگاه مدیر سیستم (که مخاطب اصلی این راهنما است)، دانستن جزئیات عملکرد داخلی کتابخانه Linux-PAM اهمیت درجه‌اول ندارد. نکته کلیدی این است که فایل(های) پیکربندی مشخص می‌کنند (define) چه پیوندی میان برنامه‌ها (services) و ماژول‌های احراز هویت با قابلیت اتصال (PAMs) که وظیفه اصلی احراز هویت را انجام می‌دهند وجود دارد.

Linux-PAM وظایف احراز هویت را به چهار گروه مدیریتی مستقل تفکیک می‌کند: مدیریت حساب کاربری (account)؛ مدیریت احراز هویت (auth)؛ مدیریت گذرواژه (password)؛ و مدیریت نشست (session). (حروف اختصاری به‌کاررفته برای این گروه‌ها در فایل پیکربندی مشخص شده‌اند.)

به زبان ساده، این گروه‌ها جنبه‌های مختلف یک درخواست معمولی کاربر برای سرویس دارای دسترسی محدود را بر عهده می‌گیرند:

account - وظیفه راستی‌آزمایی حساب کاربری را ارائه می‌دهد: آیا اعتبار گذرواژه کاربر منقضی شده است؟؛ آیا این کاربر اجازه دسترسی به سرویس درخواستی را دارد؟

auth - احراز هویت کاربر و تنظیم اعتبارات (credentials). معمولاً این کار از طریق پرسش چالش-پاسخ صورت می‌گیرد که کاربر باید آن را برآورده کند: اگر همانی هستید که ادعا می‌کنید، گذرواژه خود را وارد کنید. البته همه احراز هویت‌ها از این نوع نیستند؛ روش‌های مبتنی بر سخت‌افزار (مانند کارت‌های هوشمند و دستگاه‌های بیومتریک) نیز وجود دارند که با ماژول‌های مناسب می‌توان بدون تغییر در ساختار برنامه آن‌ها را جایگزین رویکردهای متداول کرد - این نشان از انعطاف بالای Linux-PAM دارد.

password - وظیفه این گروه به‌روزرسانی سازوکارهای احراز هویت است. معمولاً چنین سرویس‌هایی پیوند نزدیکی با گروه auth دارند. ساختار برخی روش‌های احراز هویت برای به‌روزرسانی با این تابع بسیار مناسب است؛ مانند سازوکار کلاسیک گذرواژه‌های یونیکس: لطفاً یک گذرواژه جایگزین وارد کنید.

session - این گروه، اموری را که باید قبل از ارائه سرویس و پس از پایان آن صورت پذیرد پوشش می‌دهد. مواردی مانند ثبت گزارش‌های حسابرسی (audit trails) و اتصال (mount) دایرکتوری خانگی کاربر در این دسته قرار می‌گیرند. گروه مدیریت session بسیار کلیدی است زیرا قلاب‌های لازم برای ورود و خروج به ماژول‌ها را فراهم می‌سازد تا سرویس‌های در دسترس کاربر را پیکربندی کنند.

/etc/pam.conf

فایل پیکربندی اصلی

/etc/pam.d

پوشه پیکربندی Linux-PAM. عموماً اگر این شاخه وجود داشته باشد، فایل /etc/pam.conf نادیده گرفته خواهد شد.

/usr/lib/pam.d

پوشه پیکربندی توزیع‌کننده (vendor) برای Linux-PAM. فایل‌های موجود در /etc/pam.d بر فایل‌های همنام در این دایرکتوری اولویت دارند.

معمولاً خطاهای صادرشده توسط سیستم کتابخانه‌های Linux-PAM در syslog(3) ثبت می‌شوند.

استاندارد DCE-RFC 86.0، اکتبر ۱۹۹۵. دارای امکانات بیشتر است اما سازگاری عقبرو را با این RFC حفظ کرده است.

pam(3), pam_authenticate(3), pam_sm_setcred(3), pam_strerror(3), PAM(8)

مه ۲۰۲۵ Linux-PAM