PAM_WRAPPER(1)   PAM_WRAPPER(1)

pam_wrapper - یک لایه واسط قابل پیش‌بارگذاری برای آزمایش برنامه‌ها و ماژول‌های PAM

LD_PRELOAD=libpam_wrapper.so PAM_WRAPPER=1 PAM_WRAPPER_SERVICE_DIR=/path_to_config ./myapplication

این ابزار به شما امکان می‌دهد برنامه کاربردی یا ماژول PAM خود را آزمایش کنید. برای آزمایش برنامه‌های PAM، ماژول ساده‌ای به نام pam_matrix نوشته شده است (بخش زیر را ببینید). اگر قصد دارید یک ماژول PAM را آزمایش کنید، می‌توانید از کتابخانه pamtest که پیاده‌سازی شده استفاده کنید. این کتابخانه آزمودن ماژول‌ها را ساده می‌کند. می‌توانید آن را با چارچوب آزمون واحد cmocka ترکیب کنید یا از بایندینگ‌های ارائه‌شده پایتون برای نوشتن آزمون‌های ماژول خود در پایتون بهره ببرید.

ابزار pam_wrapper از طریق متغیرهای محیطی فعال و کنترل می‌شود. می‌توانید متغیرهای زیر را تنظیم کنید:

PAM_WRAPPER

اگر pam_wrapper را بارگذاری کرده و با تنظیم PAM_WRAPPER=1 آن را فعال کنید، تمام فراخوانی‌های PAM رهگیری و پوشش داده می‌شوند تا بتوانید دایرکتوری حاوی فایل‌های سرویس مورد استفاده pam_wrapper را مشخص نمایید.

PAM_WRAPPER_SERVICE_DIR

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

اگر می‌خواهید از pam_matrix (توضیحات زیر را ببینید) استفاده کنید یا قصد دارید ماژول PAM اختصاصی خود را آزمایش کنید، باید مسیر مطلق ماژول خود را در فایل‌های سرویس مشخص نمایید.

PAM_WRAPPER_DEBUGLEVEL

اگر نیاز دارید از رخدادهای درون pam_wrapper مطلع شوید یا در پی یافتن باگ هستید، در صورتی که آن را با نمادهای اشکال‌زدایی (debug symbols) کامپایل کرده باشید، می‌توانید پشتیبانی از ثبت وقایع (logging) را در pam_wrapper فعال کنید.
•0 = ERROR
•1 = WARNING
•2 = DEBUG
•3 = TRACE

PAM_WRAPPER_USE_SYSLOG

به‌طور پیش‌فرض لاگ‌های pam به سطح لاگ DEBUG در pam_wrapper می‌روند و به syslog فرستاده نمی‌شوند. اگر می‌خواهید لاگ‌ها در syslog نیز ثبت شوند، می‌توانید این متغیر را برابر با 1 قرار دهید.

PAM_WRAPPER_KEEP_DIR

اگر این گزینه روی 1 تنظیم شود، pam_wrapper دایرکتوری‌های موقت خود را حذف نخواهد کرد. این قابلیت بیشتر برای توسعه‌دهندگان pam_wrapper مفید است.

PAM_WRAPPER_DISABLE_DEEPBIND

این متغیر امکان غیرفعال کردن اتصال عمیق (deep binding) را در pam_wrapper فراهم می‌کند. این ویژگی برای اجرای ابزارهای valgrind یا ابزارهای پاک‌سازی (مانند address، undefined، thread) کاربرد دارد.

یک فایل سرویس برای pam_wrapper باید به شکل زیر باشد:

auth            required        /usr/lib/pam_wrapper/pam_matrix.so passdb=/path/to/pdb
account         required        /usr/lib/pam_wrapper/pam_matrix.so passdb=/path/to/pdb
password        required        /usr/lib/pam_wrapper/pam_matrix.so passdb=/path/to/pdb
session         required        /usr/lib/pam_wrapper/pam_matrix.so passdb=/path/to/pdb

نام فایل باید بیانگر نام سرویس مورد استفاده توسط برنامه کاربردی PAM شما باشد.

LD_PRELOAD=./libpam_wrapper.so PAM_WRAPPER=1 PAM_WRAPPER_SERVICE_DIR=./pam_services ./my_pam_app

ماژولی برای ساده‌تر کردن فرآیند آزمایش برنامه‌های PAM فراهم شده است. می‌توانید اطلاعات بیشتر را در صفحه راهنمای pam_matrix(8) بیابید.

The Samba Team

نویسنده.
2020-01-31