PAM_EXEC(8) Linux-PAM Manual PAM_EXEC(8)

pam_exec - ماژول PAM برای اجرای دستورات خارجی

pam_exec.so [debug] [expose_authtok] [seteuid] [quiet] [quiet_log] [stdout] [log=file] [type=type] command [...]

ماژول pam_exec یک ماژول PAM است که می‌تواند برای اجرای یک دستور خارجی به کار رود.

محیط فرزند بر روی فهرست محیط فعلی PAM تنظیم می‌شود، همان‌طور که توسط pam_getenvlist(3) بازگردانده می‌شود. علاوه بر این، موارد PAM زیر به عنوان متغیرهای محیطی صادر می‌شوند: PAM_RHOST، PAM_RUSER، PAM_SERVICE، PAM_TTY، PAM_USER و PAM_TYPE، که شامل یکی از انواع ماژول زیر است: account، auth، password، open_session و close_session.

دستوراتی که توسط pam_exec فراخوانی می‌شوند باید در نظر داشته باشند که کاربر می‌تواند بر محیط کنترل داشته باشد.

debug

اطلاعات اشکال‌زدایی را چاپ می‌کند.

expose_authtok

در طول احراز هویت و تغییر گذرواژه، دستور فراخوانده‌شده می‌تواند گذرواژه را از stdin(3) بخواند. تنها نخستین PAM_MAX_RESP_SIZE بایت از گذرواژه در اختیار دستور قرار می‌گیرد.

log=file

خروجی دستور به انتهای file پیوست می‌شود.

type=type

تنها در صورتی دستور را اجرا می‌کند که نوع ماژول با نوع داده‌شده مطابقت داشته باشد.

stdout

به‌طور پیش‌فرض خروجی دستور اجراشده در /dev/null نوشته می‌شود. با این گزینه، خروجی stdout دستور اجراشده به برنامه فراخواننده هدایت می‌شود. مسئولیت آنچه با خروجی رخ می‌دهد بر عهده این برنامه است. گزینه log نادیده گرفته می‌شود.

quiet

به‌طور پیش‌فرض، در صورت شکست، pam_exec.so وضعیت خروج دستور خارجی را منعکس می‌کند. مشخص کردن این گزینه این پیام را سرکوب می‌کند.

quiet_log

به‌طور پیش‌فرض، در صورت شکست، pam_exec.so وضعیت خروج دستور خارجی را در گزارش ثبت می‌کند. مشخص کردن این گزینه پیام گزارش را سرکوب می‌کند.

seteuid

به‌طور پیش‌فرض، pam_exec.so دستور خارجی را با شناسه کاربری واقعی فرایند فراخواننده اجرا می‌کند. مشخص کردن این گزینه موجب می‌شود که دستور با شناسه کاربری مؤثر اجرا شود.

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

PAM_SUCCESS

دستور خارجی با موفقیت اجرا شد.

PAM_BUF_ERR

خطای بافر حافظه.

PAM_CONV_ERR

روش گفتگوی ارائه‌شده توسط برنامه در به‌دست‌آوردن نام کاربری ناموفق بود.

PAM_INCOMPLETE

روش گفتگوی ارائه‌شده توسط برنامه، مقدار PAM_CONV_AGAIN را بازگرداند.

PAM_SERVICE_ERR

هیچ آرگومانی یا تعداد نادرستی از آرگومان‌ها داده شده است.

PAM_SYSTEM_ERR

یک خطای سیستمی رخ داد یا اجرای دستور با شکست مواجه شد.

PAM_IGNORE

pam_setcred فراخوانی شد که دستور را اجرا نمی‌کند؛ یا مقدار ارائه‌شده برای پارامتر type= با نوع ماژول مطابقت نداشت.

خط زیر را به /etc/pam.d/passwd اضافه کنید تا پایگاه‌داده NIS پس از هر بار تغییر محلی گذرواژه بازسازی شود:

password optional pam_exec.so seteuid /usr/bin/make -C /var/yp

این کار دستور زیر را

make -C /var/yp

با شناسه کاربری مؤثر اجرا خواهد کرد.

pam.conf(5)، pam.d(5)، pam(8)

ماژول pam_exec توسط Thorsten Kukuk <kukuk@thkukuk.de> و Josh Triplett <josh@joshtriplett.org> نوشته شده است.

01/26/2026 Linux-PAM