NFSIDMAP(8) دستورات مدیریت سیستم NFSIDMAP(8)

nfsidmap - ابزار فراخوانی و نگاشت شناسههای UID و GID برای هسته NFSv4

nfsidmap [-v] [-t timeout] key desc
nfsidmap [-v] [-c]
nfsidmap [-v] [-u|-g|-r user]
nfsidmap -d
nfsidmap -l
nfsidmap -h

برنامه nfsidmap توسط هسته لینوکس فراخوانی میشود تا نامهای کاربری و گروهی NFSv4 را به شناسههای عددی UID و GID تبدیل کرده و در کش ذخیره کند.

پروتکل NFSv4 مقادیر UID و GID سیستم محلی را بر روی بستر شبکه به صورت رشته‌هایی در قالب user@domain نمایش می‌دهد. فرآیند تبدیل UID به رشته متنی و بالعکس را «نگاشت شناسه» (ID mapping) می‌نامند.

سیستم بخش user از رشته را با جستجوی کاربر در گذرواژه‌ها یا گروه‌ها استخراج می‌کند. سازوکار جستجو در فایل /etc/idmapd.conf پیکربندی می‌شود.

به‌طور پیش‌فرض، بخش domain از رشته برابر با نام دامنه DNS سیستم است. همچنین در صورتی که سیستم چندشبکه‌ای (multi-homed) باشد، یا نام دامنه DNS سیستم با نام قلمرو Kerberos سیستم همخوانی نداشته باشد، می‌توان آن را در /etc/idmapd.conf مشخص کرد.

هنگامی که دامنه در /etc/idmapd.conf مشخص نشده باشد، سرور DNS محلی برای رکورد متنی _nfsv4idmapdomain پرس‌وجو خواهد شد. اگر این رکورد وجود داشته باشد به عنوان دامنه استفاده می‌شود. در صورتی که رکورد وجود نداشته باشد، بخش دامنه از نام دامنه DNS استفاده خواهد شد.

برنامه /usr/sbin/nfsidmap عملیات تبدیل را به نمایندگی از طرف هسته لینوکس انجام می‌دهد. هسته از سازوکار request-key برای اجرای فراخوانی معکوس (upcall) استفاده می‌کند. برنامه /usr/sbin/nfsidmap توسط sbin/request-key/ فراخوانی شده، تبدیل را انجام می‌دهد و یک کلید را با اطلاعات به‌دست‌آمده مقداردهی اولیه می‌کند. سپس هسته نتایج تبدیل را در این کلید کش (ذخیره موقت) می‌کند.

همچنین nfsidmap می‌تواند نتایج نگاشت شناسه کش‌شده در هسته را پاکسازی کند یا یک کلید خاص را باطل نماید. کش شدن یک کلید نادرست می‌تواند منجر به بازگشت مالکیت فایل‌ها و دایرکتوری‌ها به «nobody» در نقاط اتصال NFSv4 شود.

علاوه بر این، گزینه‌های -d و -l برای کمک به عیب‌یابی پیکربندی‌های نادرست در دسترس هستند. این گزینه‌ها هیچ تاثیری بر جاکلیدی (keyring) حاوی نتایج نگاشت شناسه ندارند.

پاکسازی تمام کلیدها از جاکلیدی (keyring).
نمایش نام دامنه موثر NFSv4 سیستم در خروجی استاندارد (stdout).
ابطال کلید gid کاربر داده‌شده.
نمایش پیام راهنما و نحوه استفاده.
نمایش تمام کلیدهای موجود در جاکلیدی کش نتایج نگاشت شناسه در stdout. این کلیدها تنها برای کاربر ارشد (superuser) قابل مشاهده هستند.
ابطال هر دو کلید uid و gid کاربر داده‌شده.
تنظیم زمان انقضا بر حسب ثانیه برای کلید. مقدار پیش‌فرض ۶۰۰ ثانیه (۱۰ دقیقه) است.
ابطال کلید uid کاربر داده‌شده.
افزایش سطح جزئیات خروجی در syslog (می‌تواند چندین بار مشخص شود).

فایل /etc/request-key.conf باید تغییر داده شود تا /sbin/request-key بتواند فراخوانی معکوس را به درستی هدایت کند. خط زیر باید پیش از فراخوانی به keyctl negate اضافه شود:

create	id_resolver	*	*	/usr/sbin/nfsidmap -t 600 %k %d

این پیکربندی تمام درخواست‌های id_resolver را به برنامه /usr/sbin/nfsidmap هدایت می‌کند. پارامتر -t 600 مشخص می‌کند که کلید چند ثانیه پس از ایجاد منقضی شود. این یک پارامتر اختیاری برای /usr/sbin/nfsidmap است و در صورت عدم تعیین، به‌طور پیش‌فرض ۶۰۰ ثانیه خواهد بود.

سیستم idmapper از چهار نوع توصیف کلید استفاده می‌کند:

  uid: Find the UID for the given user
  gid: Find the GID for the given group
 user: Find the user name for the given UID
group: Find the group name for the given GID

شما می‌توانید به جای استفاده از برنامه عمومی فراخوانی، هر یک از این موارد را به طور جداگانه مدیریت کنید. اگر می‌خواهید از برنامه سفارشی خود برای جستجوی uid استفاده کنید، می‌توانید فایل request-key.conf را طوری ویرایش کنید که شبیه زیر باشد:

create	id_resolver	uid:*	*	/some/other/program %k %d
create	id_resolver	*		*	/usr/sbin/nfsidmap %k %d

توجه داشته باشید که خط جدید بالای خط برنامه عمومی اضافه شده است. برنامه request-key اولین خط منطبق را پیدا کرده و برنامه متناظر را اجرا می‌کند. در این حالت، some/other/program/ تمام جستجوهای uid را مدیریت کرده و usr/sbin/nfsidmap/ جستجوهای gid ،user و group را انجام می‌دهد.

/etc/idmapd.conf
فایل پیکربندی نگاشت شناسه (ID mapping)
/etc/request-key.conf
فایل پیکربندی کلید درخواست (Request key)

idmapd.conf(5), request-key(8)

Bryan Schumaker, <bjschuma@netapp.com>

مه ۲۰۲۵ nfs-utils