cifs.upcall(8) System Manager's Manual cifs.upcall(8)

cifs.upcall - برنامک مدیریت درخواست‌های فراخوانی بالای کلاینت CIFS در هسته

[--krb5conf=/path/to/krb5.conf|-k /path/to/krb5.conf] [--keytab=/path/to/keytab|-K /path/to/keytab] [--expire|-e nsecs] {keyid}

این ابزار بخشی از مجموعه cifs-utils است.

برنامه cifs.upcall یک برنامک کمکی در فضای کاربری برای سیستم‌فایل کلاینت CIFS لینوکس است. مجموعه‌ای از فعالیت‌ها وجود دارد که هسته به سادگی نمی‌تواند خودش انجام دهد. این برنامه یک برنامک فراخوانی به بیرون (callout) است که این وظایف را برای هسته انجام داده و سپس نتیجه را بازمی‌گرداند.

به‌طور کلی cifs.upcall طوری طراحی شده است که با فراخوانی request-key(8) توسط هسته برای یک نوع کلید مشخص اجرا شود. اگرچه اجرای مستقیم آن از خط فرمان امکان‌پذیر است، اما معمولاً برای چنین کاری در نظر گرفته نشده است.

این گزینه منسوخ شده و در حال حاضر نادیده گرفته می‌شود.
به‌طور معمول، cifs.upcall محیط متغیرهای پردازشی که فراخوانی بالا را آغاز کرده بررسی می‌کند تا مقدار $KRB5CCNAME را بازیابی کند. این کار به برنامه در یافتن کش‌های اعتبارنامه در مکان‌های غیرپیش‌فرض کمک می‌کند. اگر این گزینه تنظیم شود، برنامه این بررسی را انجام نخواهد داد و به یافتن کش‌های اعتبارنامه در مکان‌های پیش‌فرض مشخص‌شده در krb5.conf متکی خواهد بود. توجه داشته باشید که این کار هرگز در زمانی که uid برابر با 0 باشد انجام نمی‌شود. هنگامی که uid برابر با 0 باشد، بدون توجه به متغیرهای محیطی درون پردازش، همیشه از مکان پیش‌فرض کش اعتبارنامه استفاده می‌شود.
این گزینه به مدیران سیستم اجازه می‌دهد مکان جایگزینی برای فایل krb5.conf مورد استفاده توسط cifs.upcall تعیین کنند.
این گزینه به مدیران سیستم اجازه می‌دهد یک فایل keytab را برای استفاده مشخص کنند. زمانی که کاربر کش اعتبارنامه از پیش تعیین‌شده‌ای نداشته باشد، cifs.upcall تلاش خواهد کرد از این keytab برای دریافت اعتبارنامه‌ها استفاده کند. مقدار پیش‌فرض، keytab سراسری سیستم در /etc/krb5.keytab است.
در فراخوانی‌های بالای krb5، نامی که به عنوان بخش میزبان principal سرویس استفاده می‌شود، به‌طور پیش‌فرض بخش hostname از UNC است. این گزینه به برنامک فراخوانی بالا اجازه می‌دهد آدرس شبکه سرور را به‌صورت معکوس تحلیل کند تا نام میزبان را به دست آورد.

امنیت این روش از اعتماد نکردن به DNS کمتر است. هنگام استفاده از این گزینه، ممکن است یک نفوذگر کنترل DNS را در دست بگیرد و کلاینت را فریب دهد تا سرور کاملاً متفاوتی را سوار (mount) کند. ترجیح بر این است که به‌جای این کار، برای هر نام میزبان ممکن principalهای سرور به KDC اضافه شوند، اما این گزینه برای شرایطی که این کار امکان‌پذیر نیست در نظر گرفته شده است. پیش‌فرض سیستم این است که به تحلیل معکوس نام میزبان به این روش اعتماد نکند.

به‌طور سنتی، هسته تنها یک پارامتر uid= را به فراخوانی بالای SPNEGO ارسال می‌کرد که برای تعیین کش اعتبارنامه کاربر استفاده می‌شد. این پارامتر تحت تأثیر گزینه اتصال uid= است که مالکیت فایل‌ها در نقطه اتصال را نیز کنترل می‌کند.

هسته‌های جدیدتر گزینه creduid= را نیز ارسال می‌کنند که حاوی شناسه کاربری (uid) است که تصور می‌شود مالک واقعی اعتبارنامه‌های مورد نظر است. در زمان اتصال، این پارامتر معمولاً روی uid واقعی کاربری که اتصال را انجام می‌دهد تنظیم می‌شود. برای اتصالات چندنشستی (multisession)، روی fsuid کاربر اتصال تنظیم می‌شود. اگر می‌خواهید cifs.upcall به‌جای پارامتر creduid= از پارامتر قدیمی‌تر uid= استفاده کند، این گزینه را تنظیم کنید.

بازنویسی مقدار مهلت زمانی پیش‌فرض (۶۰۰ ثانیه) برای کلید dns_resolver.
نمایش شماره نسخه و خروج.

فعال‌سازی استفاده از gssproxy برای بازیابی اعتبارنامه. این شامل مقداردهی اولیه کلاینت مبتنی بر keytab و همچنین تفویض مقید مبتنی بر منابع (Resource Based Constrained Delegation) می‌شود. gssproxy-mech(8) را ببینید.

برنامه cifs.upcall طراحی شده تا از هسته از طریق برنامه فراخوانی request-key فراخوانی شود. این امر مستلزم آن است که به request-key اعلام شود این برنامه کجا و چگونه فراخوانی شود. برنامه فعلی cifs.upcall دو نوع کلید مختلف را مدیریت می‌کند:

این نوع کلید برای بازیابی کلیدهای نشست kerberos است.
این نوع کلید برای تحلیل نام‌های میزبان به آدرس‌های IP است. پشتیبانی از این نوع کلید ممکن است در آینده منسوخ شود (به بخش زیر مراجعه کنید).

برای اینکه این برنامه برای CIFS قابل استفاده باشد، باید ورودی‌هایی برای آن‌ها در request-key.conf(5) تعریف کنید. در اینجا نمونه‌ای از ورودی برای هر نوع کلید آورده شده است:

#OPERATION  TYPE           D C PROGRAM ARG1 ARG2...
#=========  =============  = = ================================
create      cifs.spnego    * * /usr/bin/cifs.upcall %k
create      dns_resolver   * * /usr/bin/cifs.upcall %k

برای اطلاعات بیشتر درباره هر فیلد، request-key.conf(5) را ببینید.

بسته keyutils همچنین شامل یک برنامه مدیریت dns_resolver است که نسبت به نسخه موجود در cifs.upcall ارجحیت دارد. اگر از نسخه keyutils معادل یا بالاتر از 1.5 استفاده می‌کنید، باید از key.dns_resolver به‌جای cifs.upcall برای مدیریت نوع کلید dns_resolver استفاده نمایید. برای اطلاعات بیشتر key.dns_resolver(8) را ببینید.

request-key.conf(5), mount.cifs(8), key.dns_resolver(8)

برنامه cifs.upcall توسط Igor Mammedov نوشته شده است.

این صفحه راهنما توسط Jeff Layton نگارش شده است.

نگه‌دارنده Linux CIFS VFS آقای Steve French است.

لیست پستی Linux CIFS مکان ارجح برای مطرح کردن پرسش‌ها در رابطه با این برنامه‌ها است.