| XAUTH(1) | X Version 11 | XAUTH(1) |
نام (NAME)
xauth - ابزار فایل مجوز دسترسی X
خلاصه دستور (SYNOPSIS)
xauth [ -f authfile ] [ -vqibn ] [ command arg ... ]
توضیحات (DESCRIPTION)
برنامه xauth برای ویرایش و نمایش اطلاعات مجوز دسترسی که در ارتباط با کارساز X استفاده میشود، به کار میرود. این برنامه معمولاً برای استخراج رکوردهای مجوز از یک ماشین و ادغام آنها در ماشینی دیگر استفاده میشود (مانند زمان استفاده از ورود از راه دور یا اعطای دسترسی به سایر کاربران). دستورها (که در ادامه توضیح داده شدهاند) را میتوان به صورت تعاملی، در خط فرمان xauth، یا در اسکریپتها وارد کرد. توجه داشته باشید که این برنامه، به جز هنگام استفاده از دستور generate، با کارساز X ارتباط برقرار نمیکند. به طور معمول xauth در ابتدا برای ایجاد ورودی فایل مجوز استفاده نمیشود؛ برنامهای که کارساز X را راهاندازی میکند (اغلب xdm یا startx) این کار را انجام میدهد.
گزینهها (OPTIONS)
گزینههای زیر را میتوان با xauth به کار برد. آنها را میتوان به صورت جداگانه (مثلاً -q -i) یا به صورت ترکیبی (مثلاً -qi) مشخص کرد.
- -f authfile
- این گزینه نام فایل مجوز مورد استفاده را مشخص میکند. به طور پیشفرض، xauth از فایل مشخصشده توسط متغیر محیطی XAUTHORITY یا فایل .Xauthority در دایرکتوری خانگی کاربر استفاده خواهد کرد.
- -q
- این گزینه نشان میدهد که xauth باید در حالت بیصدا اجرا شود و پیامهای وضعیتی ناخواسته را چاپ نکند. این حالت پیشفرض است اگر یک دستور xauth در خط فرمان مشخص شده باشد یا اگر خروجی استاندارد به یک ترمینال هدایت نشده باشد.
- -v
- این گزینه نشان میدهد که xauth باید در حالت پرگو (verbose) کار کند و پیامهای وضعیتی حاکی از نتایج عملیات گوناگون را چاپ کند (مثلاً چه تعداد رکورد خوانده شده یا نوشته شده است). این حالت پیشفرض است اگر xauth در حال خواندن دستورها از ورودی استاندارد خود باشد و خروجی استاندارد آن به یک ترمینال هدایت شود.
- -i
- این گزینه مشخص میکند که xauth باید هرگونه قفل فایل مجوز را نادیده بگیرد. در حالت عادی، xauth از خواندن یا ویرایش هر فایل مجوزی که توسط برنامههای دیگر (معمولاً xdm یا یک نمونه دیگر از xauth) قفل شده باشد، خودداری میکند.
- -b
- این گزینه نشان میدهد که xauth باید پیش از ادامه، تلاش کند قفلهای فایل مجوز را بشکند. از این گزینه تنها برای پاک کردن قفلهای منسوخ و کهنه استفاده کنید.
- -n
- این گزینه مشخص میکند که xauth نباید برای تحلیل نام میزبانها تلاشی کند، بلکه باید همواره نشانی میزبان را دقیقاً همانطور که در فایل مجوز ذخیره شده است چاپ کند.
- -V, --version
- این گزینه شماره نسخه فایل اجرایی xauth را نشان میدهد.
دستورها (COMMANDS)
دستورهای زیر را میتوان برای دستکاری فایلهای مجوز به کار برد:
- add displayname protocolname hexkey
- یک ورودی مجوز برای نمایشگر مشخصشده با استفاده از پروتکل و دادههای کلیدِ دادهشده به فایل مجوز اضافه میشود. دادهها به صورت یک رشته با طول زوج از ارقام هگزادسیمال مشخص میشوند که هر جفت نشاندهنده یک بایت (octet) است. نخستین رقم هر جفت نشاندهنده ۴ بیت باارزشتر بایت، و دومین رقم جفت نشاندهنده ۴ بیت کمارزشتر آن است. به عنوان مثال، یک hexkey با ۳۲ نویسه یک مقدار ۱۲۸ بیتی را نشان میدهد. نام پروتکلی که تنها از یک نقطه تک تشکیل شده باشد به عنوان شکل اختصاری MIT-MAGIC-COOKIE-1 تلقی میشود.
- هشدار: این شیوه استفاده ناامن تلقی میشود زیرا magic cookie محرمانه در تاریخچه دستورها و به عنوان مثال در خروجی ps نمایش داده خواهد شد. در عوض باید از دستور "merge" (همانگونه که در ادامه توضیح داده شده است) استفاده شود. به هشدار آن دستور نیز توجه فرمایید.
- generate displayname protocolname [trusted|untrusted]
- [timeout seconds] [group group-id] [data hexdata]
- این دستور مشابه add است. تفاوت اصلی در این است که به جای الزام کاربر به ارائه دادههای کلید، به کارساز مشخصشده در displayname متصل میشود و از افزونه SECURITY به منظور دریافت دادههای کلید جهت ذخیره در فایل مجوز استفاده میکند. اگر اتصال به کارساز برقرار نشود یا کارساز از افزونه SECURITY پشتیبانی نکند، دستور با شکست مواجه میشود. در غیر این صورت، یک ورودی مجوز برای نمایشگر مورد نظر با استفاده از پروتکل دادهشده به فایل مجوز اضافه میشود. نام پروتکلی که تنها از یک نقطه تشکیل شده باشد به عنوان شکل اختصاری MIT-MAGIC-COOKIE-1 تلقی میشود.
- اگر از گزینه trusted استفاده شود، کلاینتهایی که با این مجوز متصل میشوند طبق معمول دسترسی کامل به نمایشگر خواهند داشت. اگر از untrusted استفاده شود، کلاینتهایی که با استفاده از این مجوز متصل میشوند غیرقابلاعتماد تلقی شده و از سرقت یا دستکاری دادههای متعلق به کلاینتهای قابلاعتماد بازداشته میشوند. برای جزئیات کامل محدودیتهای اعمالشده بر کلاینتهای غیرقابلاعتماد، مشخصات افزونه SECURITY را ببینید. مقدار پیشفرض untrusted است.
- گزینه timeout مشخص میکند که این مجوز تا چند ثانیه معتبر خواهد بود. اگر مجوز برای مدتی طولانیتر از این بازه زمانی بلااستفاده بماند (هیچ کلاینتی با آن متصل نشده باشد)، کارساز مجوز را پاکسازی میکند، و تلاشهای بعدی برای اتصال با استفاده از آن ناموفق خواهند بود. توجه داشته باشید که پاکسازی انجامشده توسط کارساز، ورودی مجوز را از فایل مجوز حذف نمیکند. مقدار مهلت زمانی پیشفرض ۶۰ ثانیه است.
- گزینه group گروه برنامهای (application group) را مشخص میکند که کلاینتهای متصل با این مجوز باید به آن تعلق داشته باشند. برای جزئیات بیشتر به مشخصات افزونه application group مراجعه کنید. حالت پیشفرض عدم تعلق به هیچ گروه برنامهای است.
- گزینه data دادههایی را مشخص میکند که کارساز باید از آنها برای تولید مجوز استفاده کند. توجه داشته باشید که این داده، همان دادهای نیست که در فایل مجوز نوشته میشود. تفسیر این دادهها به پروتکل مجوز بستگی دارد. hexdata دارای همان قالبی است که برای hexkey در دستور add توضیح داده شد. حالت پیشفرض عدم ارسال هرگونه داده است.
- [n]extract filename displayname...
- ورودیهای مجوز برای هر یک از نمایشگرهای مشخصشده در فایل تعیینشده نوشته میشوند. اگر از دستور nextract استفاده شود، ورودیها در قالبی عددی و مناسب برای انتقال غیردودویی (مانند رایانامه امن) نوشته میشوند. ورودیهای استخراجشده را میتوان دوباره با استفاده از دستورهای merge و nmerge بازخوانی کرد. اگر نام فایل تنها شامل یک خط تیره یکتا (-) باشد، ورودیها در خروجی استاندارد نوشته خواهند شد.
- [n]list [displayname...]
- ورودیهای مجوز برای هر یک از نمایشگرهای مشخصشده (یا همه نمایشگرها در صورتی که نامی از نمایشگری برده نشود) در خروجی استاندارد چاپ میشوند. اگر از دستور nlist استفاده شود، ورودیها در قالب عددی مورد استفاده توسط دستور nextract نمایش داده میشوند؛ در غیر این صورت، در قالبی متنی نشان داده میشوند. دادههای کلید همواره در قالب هگزادسیمال ارائهشده در توضیحات دستور add نمایش داده میشوند.
- [n]merge [filename...]
- ورودیهای مجوز از فایلهای مشخصشده خوانده شده و در پایگاهداده مجوزها ادغام میشوند، و جایگزین هر ورودی منطبقِ موجود میگردند. اگر از دستور nmerge استفاده شود، قالب عددی ذکرشده در توضیحات دستور extract به کار میرود. اگر نام فایل فقط یک خط تیره باشد، چنانچه ورودی استاندارد پیشتر خوانده نشده باشد، از آن خوانده خواهد شد.
- هشدار: در رابطه با حالت خط تیره تنها احتیاط کنید، زیرا بسته به زنجیره دستورها (برای نمونه، ترکیبی با استفاده از sudo)، کلید محرمانه ممکن است در تاریخچه دستورها و به عنوان مثال در خروجی ps در معرض دید دیگران قرار گیرد.
- remove displayname...
- ورودیهای مجوز منطبق با نمایشگرهای مشخصشده از فایل مجوز حذف میشوند.
- source filename
- فایل مشخصشده به عنوان اسکریپتی حاوی دستورهای xauth برای اجرا تلقی میشود. خطوط خالی و خطوطی که با علامت شارپ (#) شروع میشوند نادیده گرفته میشوند. از یک خط تیره میتوان برای مشخص کردن ورودی استاندارد استفاده کرد، در صورتی که از قبل خوانده نشده باشد.
- info
- اطلاعاتی شامل شرح فایل مجوز، ایجاد شدن یا نشدن هرگونه تغییر، و محلی که دستورهای xauth از آنجا خوانده میشوند، در خروجی استاندارد چاپ میشود.
- exit
- اگر تغییری ایجاد شده باشد، فایل مجوز (در صورت مجاز بودن) در دیسک نوشته میشود و برنامه خارج میگردد. رسیدن به انتهای فایل (EOF) به عنوان دستور ضمنی exit تلقی میشود.
- quit
- برنامه با نادیده گرفتن هرگونه تغییر خارج میشود. این عمل را میتوان با فشردن نویسه وقفه (interrupt character) نیز انجام داد.
- version
- این دستور شماره نسخه فایل اجرایی xauth را نشان میدهد.
- help [string]
- توضیحات تمام دستورهایی که با رشته دادهشده آغاز میشوند (یا تمام دستورها در صورت ارائه نشدن رشته) در خروجی استاندارد چاپ میشود.
- ?
- فهرست کوتاهی از دستورهای معتبر در خروجی استاندارد چاپ میشود.
نامهای نمایشگر (DISPLAY NAMES)
نامهای نمایشگر برای دستورهای add، [n]extract، [n]list، [n]merge و remove از همان قالب متغیر محیطی DISPLAY و آرگومان متداول خط فرمان -display استفاده میکنند. اطلاعات خاص نمایشگر (مانند شماره صفحه نمایش) غیرضروری است و نادیده گرفته خواهد شد. اتصالهای روی یک ماشین یکسان (مانند سوکتهای میزبان محلی، حافظه اشتراکی، و نام میزبان پروتکل اینترنت localhost) به عنوان hostname/unix:displaynumber در نظر گرفته میشوند تا ورودیهای محلی ماشینهای گوناگون بتوانند در یک فایل مجوز ذخیره شوند.
مثالها (EXAMPLES)
رایجترین کاربرد xauth، استخراج ورودی مربوط به نمایشگر فعلی، کپی آن در ماشینی دیگر، و ادغام آن در فایل مجوز کاربر در ماشین راه دور است:
% xauth extract - $DISPLAY | ssh otherhost xauth merge -
دستور زیر با کارساز :0 به منظور ایجاد یک مجوز با استفاده از پروتکل MIT-MAGIC-COOKIE-1 ارتباط برقرار میکند. کلاینتهایی که با این مجوز متصل شوند، غیرقابلاعتماد خواهند بود.
% xauth generate :0 .
محیط (ENVIRONMENT)
برنامه xauth از متغیرهای محیطی زیر استفاده میکند:
- XAUTHORITY
- برای بهدست آوردن نام فایل مجوزی که در صورت عدم استفاده از گزینه -f باید به کار رود.
- HOME
- برای بهدست آوردن دایرکتوری خانگی کاربر در صورتی که XAUTHORITY تعریف نشده باشد.
فایلها (FILES)
- $HOME/.Xauthority
- فایل مجوز پیشفرض در صورتی که XAUTHORITY تعریف نشده باشد.
همچنین ببینید (SEE ALSO)
X(7), Xsecurity(7), xhost(1), Xserver(1), xdm(1), startx(1), Xau(3).
گزارش باگها (BUGS)
کاربرانی که دارای شبکههای ناامن هستند باید توجه داشته باشند که برای کپی کردن ورودیهای مجوز بین ماشینها از سازوکارهای انتقال رمزگذاریشده فایل استفاده نمایند. به همین ترتیب، پروتکل MIT-MAGIC-COOKIE-1 در محیطهای ناامن چندان مفید نیست. سامانههایی که به امنیت بیشتری نیاز دارند ممکن است لازم باشد از سازوکارهای احراز هویت رمزگذاریشده مانند Kerberos استفاده کنند.
در حال حاضر فاصلهها در نام پروتکل مجاز نیستند. میتوان برای موارد واقعاً غیرمتعارف امکان نقلقول (quoting) را اضافه کرد.
نویسندگان (AUTHORS)
Jim Fulton, MIT X Consortium
| 2025-04-13 | xauth 1.1.5 |