nsswitch.conf(5)

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

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

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

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

aliases
    أسماء مستعارة للبريد، تُستخدم بواسطة getaliasent(3) والدوال ذات الصلة.

ethers
    أرقام إيثرنت.

مجموعة
    مجموعات المستخدمين، تُستخدم بواسطة getgrent(3) والدوال ذات الصلة.

hosts
    أسماء وأرقام المضيفين، تُستخدم بواسطة gethostbyname(3) والدوال ذات الصلة.

initgroups
    قائمة الوصول للمجموعات التكميلية، تُستخدم بواسطة دالة getgrouplist(3).

netgroup
    قائمة على مستوى الشبكة للمضيفين والمستخدمين، تُستخدم لقواعد الوصول. مكتبات C قبل glibc 2.1 دعمت المجموعات الشبكية فقط عبر NIS.

networks
    أسماء وأرقام الشبكات، تُستخدم بواسطة getnetent(3) والدوال ذات الصلة.

passwd
    كلمات سر المستخدمين، تُستخدم بواسطة getpwent(3) والدوال ذات الصلة.

protocols
    بروتوكولات الشبكة، تُستخدم بواسطة getprotoent(3) والدوال ذات الصلة.

publickey
    المفاتيح العامة والسرية لـ Secure_RPC المستخدمة بواسطة NFS وNIS+.

rpc أسماء وأرقام استدعاءات الإجراءات البعيدة، تُستخدم بواسطة getrpcbyname(3) والدوال ذات الصلة.

خدمات
    خدمات الشبكة، تُستخدم بواسطة getservent(3) والدوال ذات الصلة.

shadow
    كلمات سر المستخدمين المخفية، تُستخدم بواسطة 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 نتيجة دالة البحث التي استدعتها مواصفات الخدمة السابقة، ويمكن أن تكون واحدة من:

    success
        لم يحدث خطأ ويُعاد الإدخال المطلوب. الإجراء المبدئي لهذه الحالة هو "return".

    notfound
        نجح البحث، ولكن لم يُعثر على الإدخال المطلوب. الإجراء المبدئي لهذه الحالة هو "continue".

    unavail
        الخدمة غير متاحة بشكل دائم. يمكن أن يعني هذا إما أن الملف المطلوب لا يمكن قراءته، أو، لخدمات الشبكة، أن الخادم غير متاح أو لا يسمح بالاستعلامات. الإجراء المبدئي لهذه الحالة هو "continue".

    tryagain
        الخدمة غير متاحة مؤقتًا. يمكن أن يعني هذا أن ملفًا مقفل أو أن خادمًا لا يمكنه حاليًا قبول المزيد من الاتصالات. الإجراء المبدئي لهذه الحالة هو "continue".

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

    return
        أعد نتيجة الآن. لا تستدع أي دوال بحث إضافية. ومع ذلك، لأسباب التوافق، إذا كان هذا هو الإجراء المحدد لقاعدة بيانات group وحالة notfound، ولم يحتوي ملف الإعدادات على سطر initgroups، فتُستدعى دالة البحث التالية دائمًا، دون التأثير على نتيجة البحث.

    continue
        استدع دالة البحث التالية.

    merge
        يُستخدم [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
            استبعد المستخدم المحدد user من خريطة NIS passwd/shadow.

        -@netgroup
            استثنِ جميع المستخدمين في مجموعة الشبكة المحددة.

        +   أدرج كل مستخدم، باستثناء المستبعدين سابقًا، من خريطة NIS passwd/shadow.

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

        +group
            أدرج المجموعة المحددة من خريطة مجموعة NIS.

        -group
            استثنِ المجموعة المحددة من خريطة مجموعة 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
    ethers
        /etc/ethers
    مجموعة
        /etc/group
    hosts
        /etc/hosts
    initgroups
        /etc/group
    netgroup
        /etc/netgroup
    networks
        /etc/networks
    passwd
        /etc/passwd
    protocols
        /etc/protocols
    publickey
        /etc/publickey
    rpc /etc/rpc
    خدمات
        /etc/services
    shadow
        /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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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