Scroll to navigation

nsswitch.conf(5) File Formats Manual nsswitch.conf(5)

الاسم

nsswitch.conf - ملف إعدادات تبديل خدمة الأسماء

الوصف

ملف تكوين مبدل خدمة الأسماء (NSS)، /etc/nsswitch.conf، يُستخدم من قبل مكتبة GNU C وبعض التطبيقات الأخرى لتحديد المصادر التي تُجلب منها معلومات خدمة الأسماء في مجموعة من الفئات، وبأي ترتيب. كل فئة من المعلومات تُعرف باسم قاعدة بيانات.

الملف هو نص ASCII عادي، مع أعمدة مفصولة بمسافات أو أحرف جدولة. العمود الأول يُحدد اسم قاعدة البيانات. الأعمدة المتبقية تصف ترتيب المصادر التي يُستعلم عنها ومجموعة محدودة من الإجراءات التي يمكن تنفيذها بناءً على نتيجة البحث.

قواعد البيانات التالية مفهومة من قبل مكتبة GNU C:

أسماء مستعارة للبريد، تُستخدم بواسطة getaliasent(3) والدوال ذات الصلة.
أرقام إيثرنت.
مجموعة
مجموعات المستخدمين، تُستخدم بواسطة getgrent(3) والدوال ذات الصلة.
أسماء وأرقام المضيفين، تُستخدم بواسطة gethostbyname(3) والدوال ذات الصلة.
قائمة الوصول للمجموعات التكميلية، تُستخدم بواسطة دالة getgrouplist(3).
قائمة على مستوى الشبكة للمضيفين والمستخدمين، تُستخدم لقواعد الوصول. مكتبات C قبل glibc 2.1 دعمت المجموعات الشبكية فقط عبر NIS.
أسماء وأرقام الشبكات، تُستخدم بواسطة getnetent(3) والدوال ذات الصلة.
كلمات سر المستخدمين، تُستخدم بواسطة getpwent(3) والدوال ذات الصلة.
بروتوكولات الشبكة، تُستخدم بواسطة getprotoent(3) والدوال ذات الصلة.
المفاتيح العامة والسرية لـ Secure_RPC المستخدمة بواسطة NFS وNIS+.
أسماء وأرقام استدعاءات الإجراءات البعيدة، تُستخدم بواسطة getrpcbyname(3) والدوال ذات الصلة.
خدمات
خدمات الشبكة، تُستخدم بواسطة getservent(3) والدوال ذات الصلة.
كلمات سر المستخدمين المخفية، تُستخدم بواسطة getspnam(3) والدوال ذات الصلة.

مكتبة GNU C تتجاهل قواعد البيانات ذات الأسماء غير المعروفة. بعض التطبيقات تستخدم هذا لتنفيذ معالجة خاصة لقواعد بياناتها الخاصة. على سبيل المثال، sudo(8) يستشير قاعدة بيانات sudoers. تفويض معرفات المستخدمين/المجموعات التابعة يمكن تكوينه باستخدام قاعدة بيانات subid. راجع subuid(5) وsubgid(5) لمزيد من التفاصيل.

هذا مثال لملف /etc/nsswitch.conf:


passwd:         compat
group:          compat
shadow:         compat
hosts:          dns [!UNAVAIL=return] files
networks:       nis [NOTFOUND=return] files
ethers:         nis [NOTFOUND=return] files
protocols:      nis [NOTFOUND=return] files
rpc:            nis [NOTFOUND=return] files
services:       nis [NOTFOUND=return] files

العمود الأول هو اسم قاعدة البيانات. الأعمدة المتبقية تُحدد:

مواصفات خدمة واحدة أو أكثر، على سبيل المثال، "files" أو "db" أو "nis". يحدد ترتيب الخدمات في السطر الترتيب الذي ستُستعلم به هذه الخدمات، بدورها، حتى يُعثر على نتيجة.
إجراءات اختيارية لتنفيذها إذا حُصل على نتيجة معينة من الخدمة السابقة، على سبيل المثال، "[NOTFOUND=return]".

تعتمد مواصفات الخدمة المدعومة على نظامك على وجود المكتبات المشتركة، وبالتالي فهي قابلة للتوسيع. ستوفر المكتبات المسماة /lib/libnss_SERVICE.so.X الخدمة المسماة SERVICE. في التثبيت القياسي، يمكنك استخدام "files" و"db" و"nis" و"nisplus". لقاعدة بيانات hosts، يمكنك أيضًا تحديد "dns". لقواعد بيانات passwd وgroup وshadow، يمكنك أيضًا تحديد "compat" (انظر وضع التوافق أدناه). قد يكون رقم الإصدار X 1 لـ glibc 2.0، أو 2 لـ glibc 2.1 والإصدارات الأحدث. على الأنظمة التي تحتوي على مكتبات إضافية مثبتة، قد يكون لديك إمكانية الوصول إلى خدمات أخرى مثل "hesiod" و"ldap" و"winbind" و"wins".

يمكن أيضًا تحديد إجراء بعد مواصفات الخدمة. يعدل الإجراء السلوك بعد الحصول على نتيجة من مصدر البيانات السابق. تأخذ عناصر الإجراء الشكل العام:

[STATUS=ACTION]
[!STATUS=ACTION]

أين

STATUS => success | notfound | unavail | tryagain
ACTION => return | continue | merge

ينفي الرمز ! الاختبار، مطابقًا جميع النتائج الممكنة باستثناء النتيجة المحددة. حالة الأحرف للكلمات المفتاحية غير مهمة.

تُطابق قيمة STATUS نتيجة دالة البحث التي استدعتها مواصفات الخدمة السابقة، ويمكن أن تكون واحدة من:

لم يحدث خطأ ويُعاد الإدخال المطلوب. الإجراء المبدئي لهذه الحالة هو "return".
نجح البحث، ولكن لم يُعثر على الإدخال المطلوب. الإجراء المبدئي لهذه الحالة هو "continue".
الخدمة غير متاحة بشكل دائم. يمكن أن يعني هذا إما أن الملف المطلوب لا يمكن قراءته، أو، لخدمات الشبكة، أن الخادم غير متاح أو لا يسمح بالاستعلامات. الإجراء المبدئي لهذه الحالة هو "continue".
الخدمة غير متاحة مؤقتًا. يمكن أن يعني هذا أن ملفًا مقفل أو أن خادمًا لا يمكنه حاليًا قبول المزيد من الاتصالات. الإجراء المبدئي لهذه الحالة هو "continue".

يمكن أن تكون قيمة ACTION واحدة من:

أعد نتيجة الآن. لا تستدع أي دوال بحث إضافية. ومع ذلك، لأسباب التوافق، إذا كان هذا هو الإجراء المحدد لقاعدة بيانات group وحالة notfound، ولم يحتوي ملف الإعدادات على سطر initgroups، فتُستدعى دالة البحث التالية دائمًا، دون التأثير على نتيجة البحث.
استدع دالة البحث التالية.
يُستخدم [SUCCESS=merge] بين إدخالي قاعدة بيانات. عندما يُوجد مجموعة في أول إدخالين للمجموعة، ستستمر المعالجة إلى الإدخال التالي. إذا وُجدت المجموعة أيضًا في الإدخال التالي (وكان اسم المجموعة وGID متطابقين تمامًا)، ستُضاف قائمة الأعضاء من الإدخال الثاني إلى كائن المجموعة المراد إعادته. متاح منذ glibc 2.24. لاحظ أن الدمج لن يُجرى لـ getgrent(3) ولن تُشذب الأعضاء المكررة عند حدوثها في كلا الإدخالين الجاري دمجهما.

وضع التوافق (compat)

خدمة NSS "compat" مشابهة لـ "files" باستثناء أنها تسمح بالإضافة إلى ذلك بإدخالات خاصة في الملفات المقابلة لمنح المستخدمين أو أعضاء المجموعات الشبكية وصولاً إلى النظام. الإدخالات التالية صالحة في هذا الوضع:

لقواعد بيانات passwd وshadow:

+user
ضمّن المستخدم المحدد user من خريطة NIS passwd/shadow.
+user::::::
أدرج المستخدم المحدد من خريطة NIS passwd، ولكن تجاوزه بحقول passwd غير فارغة.
+@netgroup
ضمّن جميع المستخدمين في المجموعة الشبكية المعطاة netgroup.
استبعد المستخدم المحدد user من خريطة NIS passwd/shadow.
-@netgroup
استثنِ جميع المستخدمين في مجموعة الشبكة المحددة.
+
أدرج كل مستخدم، باستثناء المستبعدين سابقًا، من خريطة NIS passwd/shadow.

لقاعدة بيانات group:

+group
أدرج المجموعة المحددة من خريطة مجموعة NIS.
استثنِ المجموعة المحددة من خريطة مجموعة NIS.
+
أدرج كل مجموعة، باستثناء المستبعدة سابقًا، من خريطة مجموعة NIS.

المصدر المبدئي هو "nis"، ولكن يمكن تجاوز ذلك بتحديد أي خدمة NSS باستثناء "compat" نفسها كمصدر لقواعد البيانات الزائفة passwd_compat وgroup_compat وshadow_compat.

الملفات

يتم تنفيذ خدمة تُسمى الخدمة بواسطة مكتبة كائنات مشتركة تُسمى libnss_الخدمة.so.X توجد في /lib.

/etc/nsswitch.conf
ملف تهيئة NSS.
/lib/libnss_compat.so.X
ينفذ مصدر "compat".
/lib/libnss_db.so.X
ينفذ مصدر "db".
/lib/libnss_dns.so.X
ينفذ مصدر "dns".
/lib/libnss_files.so.X
ينفذ مصدر "files".
/lib/libnss_hesiod.so.X
ينفذ مصدر "hesiod".
/lib/libnss_nis.so.X
ينفذ مصدر "nis".
/lib/libnss_nisplus.so.X
ينفذ مصدر "nisplus".

تُقرأ الملفات التالية عند تحديد مصدر "files" لقواعد البيانات المعنية:

aliases
/etc/aliases
/etc/ethers
مجموعة
/etc/group
/etc/hosts
/etc/group
/etc/netgroup
/etc/networks
/etc/passwd
/etc/protocols
/etc/publickey
/etc/rpc
خدمات
/etc/services
/etc/shadow

ملاحظات

بدءًا من glibc 2.33، يُعاد تحميل nsswitch.conf آليًا إذا تغير الملف. في الإصدارات السابقة، كان الملف بأكمله يُقرأ مرة واحدة فقط داخل كل عملية. إذا تغير الملف لاحقًا، كانت العملية ستستمر في استخدام التهيئة القديمة.

تقليديًا، كان هناك مصدر واحد فقط لمعلومات الخدمة، غالبًا في شكل ملف تهيئة واحد (مثل /etc/passwd). ومع ذلك، مع انتشار خدمات الأسماء الأخرى، مثل خدمة معلومات الشبكة (NIS) وخدمة أسماء النطاقات (DNS)، كانت هناك حاجة إلى طريقة أكثر مرونة من ترتيبات البحث الثابتة المضمنة في مكتبة C. قدمت آلية تبديل خدمة الأسماء، التي استندت إلى الآلية المستخدمة من قبل Sun Microsystems في مكتبة Solaris 2 C، حلاً أنظف للمشكلة.

انظر أيضًا

getent(1), nss(5)

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

8 فبراير 2026 صفحات دليل لينكس 6.18