PAM_SUCCEED_IF(8) Linux-PAM Manual PAM_SUCCEED_IF(8)

pam_succeed_if - ماژول PAM برای احراز هویت مشروط بر اساس ویژگی‌های حساب

pam_succeed_if.so [flag...] [condition...]

ماژول pam_succeed_if.so طوری طراحی شده است که بر اساس ویژگی‌های حسابی که به کاربر در حال احراز هویت تعلق دارد یا مقادیر سایر آیتم‌های PAM، احراز هویت را موفق یا ناموفق کند. یکی از کاربردهای آن، تصمیم‌گیری درباره بارگذاری ماژول‌های دیگر بر اساس این آزمون است.

این ماژول باید یک یا چند شرط را به عنوان آرگومان‌های ماژول دریافت کند، و احراز هویت تنها در صورتی موفق خواهد شد که تمام شرط‌ها برقرار باشند.

پرچم‌های (flag) زیر پشتیبانی می‌شوند:

debug

پیام‌های اشکال‌زدایی ارسال‌شده به syslog را فعال می‌کند.

use_uid

ارزیابی شرایط را با استفاده از حساب کاربری انجام می‌دهد که برنامه با UID آن در حال اجرا است، به‌جای کاربری که در حال احراز هویت است.

quiet

موفقیت یا شکست را در گزارش سیستم ثبت نمی‌کند.

quiet_fail

شکست را در گزارش سیستم ثبت نمی‌کند.

quiet_success

موفقیت را در گزارش سیستم ثبت نمی‌کند.

audit

کاربران ناشناخته را در گزارش سیستم ثبت می‌کند.

شرط‌ها (Conditions) سه کلمه هستند: یک فیلد، یک آزمون، و مقداری برای آزمودن.

فیلدهای موجود عبارتند از user, uid, gid, shell, home, ruser, rhost, tty و service:

field < number

مقدار فیلد از نظر عددی کمتر از number است.

field <= number

مقدار فیلد از نظر عددی کمتر یا مساوی number است.

field eq number

مقدار فیلد از نظر عددی برابر با number است.

field >= number

مقدار فیلد از نظر عددی بزرگتر یا مساوی number است.

field > number

مقدار فیلد از نظر عددی بزرگتر از number است.

field ne number

مقدار فیلد از نظر عددی متفاوت از number است.

field = string

فیلد دقیقاً با string داده‌شده مطابقت دارد.

field != string

فیلد با string داده‌شده مطابقت ندارد.

field =~ glob

فیلد با glob داده‌شده مطابقت دارد.

field !~ glob

فیلد با glob داده‌شده مطابقت ندارد.

field in item:item:...

فیلد در فهرست آیتم‌های جداشده با دونقطه قرار دارد.

field notin item:item:...

فیلد در فهرست آیتم‌های جداشده با دونقطه قرار ندارد.

user ingroup group[:group:....]

کاربر در گروه(های) داده‌شده قرار دارد.

user notingroup group[:group:....]

کاربر در گروه(های) داده‌شده قرار ندارد.

user innetgr netgroup

زوج (user,host) در netgroup داده‌شده قرار دارد.

user notinnetgr group

زوج (user,host) در netgroup داده‌شده قرار ندارد.

تمام انواع ماژول (account, auth, password و session) ارائه می‌شوند.

PAM_SUCCESS

شرط درست (true) بود.

PAM_AUTH_ERR

شرط نادرست (false) بود.

PAM_SERVICE_ERR

یک خطای سرویس رخ داده است یا امکان تجزیه صحیح آرگومان‌ها وجود ندارد.

برای شبیه‌سازی رفتار pam_wheel، به جز اینکه هیچ حالت بازگشتی (fallback) برای گروه 0 وجود ندارد و فقط با بررسی عضویت در گروه root نیز تقریب زده می‌شود:

auth required pam_succeed_if.so quiet user ingroup wheel:root

با فرض اینکه نوع مطابقت داشته باشد، قاعده othermodule را تنها در صورتی بارگذاری می‌کند که UID بیش از ۵۰۰ باشد. عدد پس از default را برای نادیده گرفتن چندین قاعده تنظیم کنید.

type [default=1 success=ignore] pam_succeed_if.so quiet uid > 500
type required othermodule.so arguments...

glob(7), pam(8)

Nalin Dahyabhai <nalin@redhat.com>

01/26/2026 Linux-PAM