IDMAPD.CONF(5) فایلهای پیکربندی IDMAPD.CONF(5)

idmapd.conf - پرونده پیکربندی دیمن نگاشت شناسه NFSv4

پرونده /etc/idmapd.conf تنظیمات دیمن rpc.idmapd و کتابخانه libnfsidmap را برای نگاشت شناسهها و دامنههای NFSv4 تعیین میکند.

پرونده پیکربندی idmapd.conf از چندین بخش تشکیل شده است که با رشته‌هایی به شکل [General] و [Mapping] آغاز می‌شوند. هر بخش می‌تواند شامل خطوطی به شکل زیر باشد:

variable = value
بخش‌های شناخته‌شده و متغیرهای معتبر آن‌ها به شرح زیر است:

سطح پرگویی و جزئیات اشکال‌زدایی (پیش‌فرض: 0)
نام دامنه محلی NFSv4. یک دامنه NFSv4 فضانامی با نگاشت یکتای username<->UID و groupname<->GID است. (پیش‌فرض: نام دامنه کاملاً مشخص DNS میزبان)
در محیط‌های چنددامنه‌ای، برخی کارگزارهای NFS به جای دامنه واقعی NFSv4، دامنه مدیریت هویت را به owner و owner_group اضافه می‌کنند. این گزینه می‌تواند جستجوها را در چنین محیط‌هایی تسهیل کند. اگر روی مقداری غیر از "none" تنظیم شود، افزونه nsswitch ابتدا نام را بدون حذف دامنه به تابع جستجوی گذرواژه/گروه ارسال می‌کند. اگر آن نگاشت ناموفق باشد، افزونه مجدداً با روش قدیمی تلاش می‌کند (مقایسه دامنه موجود در رشته با مقدار Domain، حذف آن در صورت تطابق، و ارسال نام کوتاه حاصل به تابع جستجو). مقادیر معتبر عبارتند از "user"، "group"، "both" و "none". (پیش‌فرض: "none")
برنامه Winbind این رفتار خاص را دارد که انجام جستجوی گروه در قالب UPN (مانند staff@americas.example.com) باعث می‌شود گروه با پیشوند دامنه کامل با حروف بزرگ نمایش داده شود (مانند AMERICAS.EXAMPLE.COM\staff) به جای قالب نام آشنای netbios (مانند AMERICAS\staff). تنظیم این گزینه روی true باعث می‌شود نام پیش از ارسال به تابع جستجوی گروه بازآرایی شود تا این مشکل برطرف گردد. این تنظیم نادیده گرفته می‌شود مگر اینکه No-Strip روی "both" یا "group" تنظیم شده باشد. (پیش‌فرض: "false")
فهرستی جداشده با کاما از نام‌های realm در کربروس (Kerberos) که ممکن است معادل با نام realm محلی در نظر گرفته شوند. برای نمونه، کاربران juser@ORDER.EDU و juser@MAIL.ORDER.EDU ممکن است به عنوان یک کاربر یکسان در Domain مشخص‌شده در نظر گرفته شوند. (پیش‌فرض: نام realm پیش‌فرض میزبان)
نکته: اگر مقداری در اینجا مشخص شود، realm محلی پیش‌فرض نیز باید در آن گنجانده شود.

نام کاربر محلی که در صورت عدم امکان تکمیل نگاشت استفاده می‌شود.
نام گروه محلی که در صورت عدم امکان تکمیل نگاشت استفاده می‌شود.

فهرستی مرتب و جداشده با کاما از روش‌های نگاشت (پلاگین‌ها) برای استفاده هنگام نگاشت میان نام‌های NFSv4 و شناسه‌های محلی. هر روش مشخص‌شده به ترتیب بررسی می‌شود تا زمانی که نگاشتی پیدا شود یا روش دیگری برای امتحان باقی نماند. روش‌های موجود در توزیع پیش‌فرض شامل "nsswitch"، "umich_ldap" و "static" هستند. (پیش‌فرض: nsswitch)
فهرستی اختیاری، مرتب و جداشده با کاما از روش‌های نگاشت (پلاگین‌ها) برای استفاده هنگام نگاشت میان نام‌های احرازهویت‌شده با GSS و شناسه‌های محلی. (پیش‌فرض: همان فهرست مشخص‌شده برای Method)

روش ترجمه "static" از یک فهرست ایستا از نام‌های احرازهویت‌شده با GSS به نام‌های کاربری محلی استفاده می‌کند. ورودی‌های این فهرست به شکل زیر هستند:

principal@REALM = localusername

اگر روش ترجمه "regex" مشخص شده باشد، متغیرهای زیر در بخش [REGEX] برای نگاشت میان نام‌های NFS4 و شناسه‌های محلی استفاده می‌شوند.

عبارت باقاعده غیرحساس به حروف بزرگ و کوچک که نام کاربر محلی را از یک نام NFSv4 استخراج می‌کند. چندین عبارت را می‌توان با '|' ادغام کرد. نخستین تطابق استفاده خواهد شد. پیش‌فرضی وجود ندارد. یک عبارت باقاعده پایه برای دامنه DOMAIN.ORG و قلمرو MY.DOMAIN.ORG به این صورت خواهد بود:
^DOMAIN\([^@]+)@MY.DOMAIN.ORG$
عبارت باقاعده غیرحساس به حروف بزرگ و کوچک که نام گروه محلی را از یک نام NFSv4 استخراج می‌کند. چندین عبارت را می‌توان با '|' ادغام کرد. نخستین تطابق استفاده خواهد شد. پیش‌فرضی وجود ندارد. یک عبارت باقاعده پایه برای دامنه DOMAIN.ORG و قلمرو MY.DOMAIN.ORG به این صورت خواهد بود:
^([^@]+)@DOMAIN.ORG@MY.DOMAIN.ORG$|^DOMAIN\([^@]+)@MY.DOMAIN.ORG$
رشته ثابت برای قرار دادن پیش از نام کاربر محلی هنگام ساخت نام NFSv4. معمولاً این مقدار نام کوتاه دامنه و به دنبال آن '\' است. (پیش‌فرض: none)
رشته ثابت برای قرار دادن پس از نام کاربر محلی هنگام ساخت نام NFSv4. معمولاً این مقدار '@' و به دنبال آن realm پیش‌فرض است. (پیش‌فرض: none)
رشته ثابت برای قرار دادن پیش از نام گروه محلی هنگام ساخت نام NFSv4. معمولاً استفاده نمی‌شود. (پیش‌فرض: none)
رشته ثابت برای قرار دادن پس از نام گروه محلی هنگام ساخت نام NFSv4. معمولاً این مقدار '@' و سپس نام دامنه و به دنبال آن یک '@' دیگر و realm پیش‌فرض است. (پیش‌فرض: none)
رشته ثابت که هنگام تبدیل به نام NFSv4 به ابتدای نام گروه محلی اضافه می‌شود. اگر نام گروه NFSv4 این پیشوند را داشته باشد، هنگام تبدیل به نام گروه محلی حذف می‌شود. با استفاده از این گزینه، در صورتی که همه گروه‌ها دارای پیشوند مشترک باشند، نام گروه‌های یک دایرکتوری مرکزی می‌تواند برای یک واحد سازمانی ایزوله کوتاه شود. (پیش‌فرض: none)
عبارت باقاعده غیرحساس به حروف بزرگ و کوچک برای مستثنی کردن گروه‌ها از افزودن و حذف پیشوند تعیین‌شده توسط Group-Name-Prefix. عبارت باقاعده باید با هر دو نام گروه محلی و دوردست تطابق داشته باشد. چندین عبارت را می‌توان با '|' ادغام کرد. (پیش‌فرض: none)

اگر روش ترجمه "umich_ldap" مشخص شده باشد، متغیرهای زیر در بخش [UMICH_SCHEMA] استفاده می‌شوند.

نام یا نشانی کارگزار LDAP (در صورت استفاده از UMICH_LDAP الزامی است)
پایه جستجوی مطلق LDAP. (در صورت استفاده از UMICH_LDAP الزامی است)
پایه جستجوی مطلق LDAP برای حساب‌های افراد. (پیش‌فرض: مقدار LDAP_base)
پایه جستجوی مطلق LDAP برای حساب‌های گروه‌ها. (پیش‌فرض: مقدار LDAP_base)
تعیین اینکه آیا استانداردسازی نام روی نام ارائه‌شده به عنوان LDAP_server انجام شود یا خیر (پیش‌فرض: "true")
تعیین اینکه آیا ارجاعات ldap دنبال شوند یا خیر. (پیش‌فرض: "true")
برای فعال‌سازی ارتباط SSL با کارگزار LDAP روی "true" تنظیم شود. (پیش‌فرض: "false")
محل گواهی معتبر CA مورداستفاده در زمان فعال بودن SSL (الزامی است اگر LDAP_use_ssl برابر true باشد و LDAP_tls_reqcert روی never تنظیم نشده باشد)
رفتار اعتبارسنجی گواهی کارگزار LDAP را کنترل می‌کند. این گزینه می‌تواند همان مقادیر متغیر TLS_REQCERT در ldap.conf(5) را بپذیرد. (پیش‌فرض: "hard")
تعداد ثانیه‌ها پیش از پایان مهلت زمانی یک درخواست LDAP (پیش‌فرض: 4)
سازوکار SASL مورداستفاده برای احراز هویت sasl. در صورت استفاده از احراز هویت SASL الزامی است (پیش‌فرض: None)
قلمرو SASL مورداستفاده برای احراز هویت sasl. (پیش‌فرض: None)
شناسه احراز هویت مورداستفاده برای احراز هویت sasl. (پیش‌فرض: None)
شناسه مجازشماری مورداستفاده برای احراز هویت sasl. (پیش‌فرض: None)
ویژگی‌های امنیتی Cyrus SASL. می‌تواند همان مقادیر sasl_secprops در ldap.conf(5) را داشته باشد.
مشخص می‌کند که آیا نام میزبان کارگزار LDAP باید استانداردسازی شود یا خیر. اگر روی yes تنظیم شود، کتابخانه LDAP یک جستجوی معکوس نام میزبان انجام می‌دهد. اگر این مقدار تنظیم نشود، پیش‌فرض کتابخانه LDAP استفاده خواهد شد. (پیش‌فرض: None)
مسیر حافظه موقت اطلاعات کاربری کربروس (credential cache). اگر تنظیم نشود، مقدار متغیر محیطی KRB5CCNAME استفاده خواهد شد. اگر متغیر محیطی نیز تنظیم نشده باشد، سازوکار پیش‌فرض کتابخانه کربروس استفاده خواهد شد.
نام کلاس شیء برای حساب‌های افراد در طرحواره محلی LDAP شما (پیش‌فرض: NFSv4RemotePerson)
نام ویژگی در طرحواره محلی شما برای استفاده جهت نام‌های کاربری NFSv4 (پیش‌فرض: NFSv4Name)
نام ویژگی در طرحواره محلی شما برای uidNumber (پیش‌فرض: uidNumber)
نام ویژگی در طرحواره محلی شما برای نام‌های اصلی (Principal) در GSSAPI (پیش‌فرض: GSSAuthName)
نام ویژگی در طرحواره محلی شما برای نام‌های حساب کاربری (پیش‌فرض: uid)
نام کلاس شیء برای حساب‌های گروهی در طرحواره محلی LDAP شما (پیش‌فرض: NFSv4RemoteGroup)
نام ویژگی در طرحواره محلی شما برای gidNumber (پیش‌فرض: gidNumber)
نام ویژگی در طرحواره محلی شما برای نام‌های گروه NFSv4 (پیش‌فرض: NFSv4Name)
برخی از کارگزارهای LDAP در نمایه‌سازی عملکرد بهتری دارند، جایی که جستجو در میان تمام گروه‌ها برای یافتن کاربر در فهرست memberuid انجام می‌شود. برخی دیگر مانند دایرکتوری SunOne در صورتی که هزاران گروه وجود داشته باشد این جستجو ممکن است دقایق زیادی طول بکشد. بنابراین تنظیم LDAP_use_memberof_for_groups روی true در پرونده پیکربندی، از فهرست‌های memberof حساب کاربری استفاده کرده و فقط در میان همان گروه‌ها برای دریافت gidها جستجو می‌کند. (پیش‌فرض: false)
اگر LDAP_use_memberof_for_groups برابر true باشد، این ویژگی برای جستجو استفاده می‌شود. (پیش‌فرض: memberUid)
یک پالایه جستجوی اختیاری برای تعیین عضویت در گروه. (بدون پیش‌فرض)

یک نمونه پرونده /etc/idmapd.conf :

[General]
Verbosity = 0
Domain = domain.org
Local-Realms = DOMAIN.ORG,MY.DOMAIN.ORG,YOUR.DOMAIN.ORG
[Mapping]
Nobody-User = nfsnobody
Nobody-Group = nfsnobody
[Translation]
Method = umich_ldap,regex,nsswitch
GSS-Methods = umich_ldap,regex,static
[Static]
johndoe@OTHER.DOMAIN.ORG = johnny
[Regex]
User-Regex = ^DOMAIN\([^@]+)@DOMAIN.ORG$
Group-Regex = ^([^@]+)@DOMAIN.ORG@DOMAIN.ORG$|^DOMAIN\([^@]+)@DOMAIN.ORG$
Prepend-Before-User = DOMAIN 
Append-After-User = @DOMAIN.ORG
Append-After-Group = @domain.org@domain.org
Group-Name-Prefix = sales-
Group-Name-No-Prefix-Regex = -personal-group$
[UMICH_SCHEMA]
LDAP_server = ldap.domain.org
LDAP_base = dc=org,dc=domain

/usr/etc/idmapd.conf
/usr/etc/idmapd.conf.d/*.conf
/etc/idmapd.conf
/etc/idmapd.conf.d/*.conf

پرونده‌ها به ترتیبی که فهرست شده‌اند خوانده می‌شوند. تنظیمات بعدی، مقادیر تنظیمات قبلی را بازنویسی می‌کنند.

idmapd(8), svcgssd(8)

گزارش اشکالات به <nfsv4@linux-nfs.org>

مه ۲۰۲۵ nfsidmap