| PAM_XAUTH(8) | Linux-PAM Manual | PAM_XAUTH(8) |
نام (NAME)
pam_xauth - ماژول PAM برای فوروارد و مدیریت مجوزهای احراز هویت xauth
خلاصه دستور (SYNOPSIS)
pam_xauth.so [debug] [xauthpath=/path/to/xauth] [systemuser=UID] [targetuser=UID]
توضیحات (DESCRIPTION)
ماژول PAM با نام pam_xauth برای فوروارد کردن کلیدهای xauth (که گاهی "کوکی" نامیده میشوند) میان کاربران طراحی شده است.
بدون pam_xauth، هنگامی که xauth فعال است و کاربری از دستور su(1) برای تصاحب امتیازات کاربر دیگری استفاده میکند، آن کاربر دیگر قادر به دسترسی به نمایشگر X کاربر اصلی نخواهد بود زیرا کاربر جدید کلید لازم برای دسترسی به نمایشگر را ندارد. pam_xauth این مشکل را با فوروارد کردن کلید از کاربری که su را اجرا میکند (کاربر مبدأ) به کاربری که کاربر مبدأ هویت او را تصاحب میکند (کاربر مقصد) در هنگام ایجاد نشست و نابود کردن کلید هنگام بستهشدن نشست حل میکند.
این بدان معناست که برای نمونه، هنگام اجرای su(1) از یک نشست xterm، شما قادر خواهید بود برنامههای X را بدون درگیر شدن مستقیم با دستور xauth(1) یا پروندههای ~/.Xauthority اجرا کنید.
ماژول pam_xauth تنها در صورتی کلیدها را فوروارد میکند که xauth بتواند کلیدی متصل به متغیر محیطی $DISPLAY را فهرست کند.
کنترل دسترسی ابتدایی توسط پرونده ~/.xauth/export در پوشه خانگی کاربر فراخواننده و پرونده ~/.xauth/import در پوشه خانگی کاربر مقصد فراهم میشود.
اگر کاربری دارای پرونده ~/.xauth/import باشد، آن کاربر تنها کوکیها را از کاربرانی دریافت خواهد کرد که در این پرونده فهرست شدهاند. اگر پرونده ~/.xauth/import وجود نداشته باشد، کاربر کوکیها را از هر کاربر دیگری خواهد پذیرفت.
اگر کاربری دارای پرونده ~/.xauth/export باشد، آن کاربر تنها کوکیها را به کاربرانی که در این پرونده فهرست شدهاند فوروارد خواهد کرد. اگر پرونده ~/.xauth/export وجود نداشته باشد و کاربر فراخواننده root نباشد، کاربر کوکیها را به هر کاربر دیگری فوروارد میکند. اگر پرونده ~/.xauth/export وجود نداشته باشد و کاربر فراخواننده root باشد، کاربر کوکیها را به دیگر کاربران فوروارد نخواهد کرد.
هر دو پرونده import و export از نویسههای عام (مانند *) پشتیبانی میکنند. هر دو پرونده میتوانند خالی باشند که نشاندهنده مجاز نبودن هیچ کاربری است.
گزینهها (OPTIONS)
debug
xauthpath=/path/to/xauth
systemuser=UID
targetuser=UID
انواع ماژولهای ارائهشده (MODULE TYPES PROVIDED)
تنها نوع session ارائه شده است.
مقادیر بازگشتی (RETURN VALUES)
PAM_BUF_ERR
PAM_PERM_DENIED
PAM_SESSION_ERR
PAM_SUCCESS
PAM_USER_UNKNOWN
مثالها (EXAMPLES)
خط زیر را به /etc/pam.d/su بیافزایید تا هنگام فراخوانی su کلیدهای xauth میان کاربران فوروارد شود:
session optional pam_xauth.so
جزئیات پیادهسازی (IMPLEMENTATION DETAILS)
ماژول pam_xauth تنها زمانی کار خواهد کرد که از یک برنامه setuid استفاده شود که در آن فراخوانی getuid() شناسه کاربری که برنامه را اجرا میکند برگرداند، و PAM بتواند نام حسابی را که کاربر قصد تصاحب آن را دارد تامین کند. برنامه معمول از این نوع su(1) است. برنامه باید هر دو تابع pam_open_session() و pam_close_session() را در حالی فراخوانی کند که ruid روی uid کاربر فراخواننده و euid روی root تنظیم شده باشد، و باید نام کاربر مقصد را به عنوان مورد PAM_USER فراهم کرده باشد.
ماژول pam_xauth دستور xauth(1) را به عنوان کاربر مبدأ فراخوانی میکند تا کلید مربوط به $DISPLAY را استخراج نماید، سپس xauth را به عنوان کاربر مقصد فراخوانی میکند تا کلید را در یک پایگاهداده موقت ادغام کند و بعداً آن پایگاهداده را حذف نماید.
نمیتوان به pam_xauth دستور داد که هنگام بستهشدن نشست، کلیدها را حذف نکند.
پروندهها (FILES)
~/.xauth/import
~/.xauth/export
همچنین ببینید (SEE ALSO)
نویسنده (AUTHOR)
ماژول pam_xauth توسط Nalin Dahyabhai <nalin@redhat.com>، بر پایه نسخه اصلی توسط Michael K. Johnson <johnsonm@redhat.com> نوشته شده است.
| 01/26/2026 | Linux-PAM |