rpc.mountd(8)

الاسم
rpc.mountd - برنامج خفي لوصل NFS

موجز
/usr/sbin/rpc.mountd [خيارات]

الوصف
ينفذ البرنامج الخفي rpc.mountd جانب الخادم من بروتوكول وصل NFS، وهو بروتوكول جانبي لـ NFS يُستخدم في الإصدار 2 من NFS [RFC1094] والإصدار 3 من NFS [RFC1813]. كما يستجيب لطلبات من نواة لينكس لاستيثاق العملاء ويوفر تفاصيل أذونات الوصول.

يحافظ خادم NFS (nfsd) على خبيئة من معلومات الاستيثاق والتفويض تُستخدم لتحديد مصدر كل طلب، ثم أذونات الوصول التي يمتلكها ذلك المصدر لأي نظام ملفات محلي. عندما لا تُوجد المعلومات المطلوبة في الخبيئة، يرسل الخادم طلبًا إلى mountd لملء المعلومات المفقودة. يستخدم Mountd جدول معلومات مخزن في /var/lib/nfs/etab ويُدار بواسطة exportfs(8)، ربما استنادًا إلى محتويات exports(5)، للاستجابة لكل طلب.

  وصل أنظمة ملفات NFS المُصدّرة
يحتوي بروتوكول وصل NFS على عدة إجراءات. أهمها MNT (وصل تصدير) وUMNT (فك وصل تصدير).

يحتوي طلب MNT على وسيطين: وسيط صريح يحتوي على اسم مسار الدليل الجذر للتصدير المراد وصله، ووسيط ضمني هو عنوان IP للمُرسِل.

عند استلام طلب MNT من عميل NFS، يتحقق rpc.mountd من اسم المسار وعنوان IP للمُرسِل مقابل جدول التصدير الخاص به. إذا كان المُرسِل مسموحًا له بالوصول إلى التصدير المطلوب، يُرجع rpc.mountd مقبض ملف NFS للدليل الجذر للتصدير إلى العميل. يمكن للعميل بعد ذلك استخدام مقبض الملف الجذر وطلبات NFS LOOKUP للتنقل في هيكل الدليل للتصدير.

  ملف rmtab
يسجل البرنامج الخفي rpc.mountd كل طلب MNT ناجح بإضافة إدخال إلى ملف /var/lib/nfs/rmtab. عند استلام طلب UMNT من عميل NFS، يزيل rpc.mountd ببساطة الإدخال المطابق من /var/lib/nfs/rmtab، طالما أن قائمة التحكم في الوصول لذلك التصدير تسمح لذلك المُرسِل بالوصول إلى التصدير.

يمكن للعملاء اكتشاف قائمة أنظمة الملفات التي يُصدّرها خادم NFS حاليًا، أو قائمة العملاء الآخرين الذين ركبوا تصديراته، باستخدام أمر showmount(8). يستخدم showmount(8) إجراءات أخرى في بروتوكول وصل NFS للإبلاغ عن معلومات حول أنظمة الملفات المُصدّرة للخادم.

لاحظ، مع ذلك، أنه لا يوجد ضمان كبير بأن محتويات /var/lib/nfs/rmtab دقيقة. قد يستمر العميل في الوصول إلى تصدير حتى بعد استدعاء UMNT. إذا أعاد العميل التشغيل دون إرسال طلب UMNT، تبقى إدخالات قديمة لذلك العميل في /var/lib/nfs/rmtab.

  وصل أنظمة الملفات باستخدام NFSv4
لا يستخدم الإصدار 4 (وما بعده) من NFS بروتوكول وصل NFS منفصل. بدلاً من ذلك، يُجرى الوصل باستخدام طلبات NFS عادية يُعالجها خادم NFS في نواة لينكس (nfsd). وبالتالي، لا يُحدّث /var/lib/nfs/rmtab ليعكس أي نشاط لـ NFSv4.

الخيارات

-d النوع أو --debug النوع
    تشغيل التصحيح. الأنواع الصالحة هي: all، auth، call، general وparse.

-l أو --log-auth
    تمكين تسجيل الاستجابات لطلبات الاستيثاق والوصول من nfsd. تُخبّئ النواة كل استجابة لمدة 30 دقيقة (أو كما هو محدد بواسطة --ttl أدناه)، وتُحدّث بعد 15 دقيقة (نصف وقت ttl) إذا بقي العميل ذو الصلة نشطًا. لاحظ أن -l مكافئ لـ -d auth وبالتالي يمكن تمكينه في /etc/nfs.conf باستخدام "debug = auth" في قسم [mountd].

    يسجل rpc.mountd دائمًا استجابات الاستيثاق لطلبات MOUNT عند استخدام NFSv3، ولكن للحصول على سجلات مماثلة لـ NFSv4، هذا الخيار مطلوب.

-i أو --cache-use-ipaddr
    عادةً، يُطابق كل عنوان IP للعميل كل معرف مضيف (اسم، حرف بدل، مجموعة شبكية، إلخ) موجود في /etc/exports، ويُشكل هوية مجمعة من جميع المعرفات المتطابقة. غالبًا ما تتطابق عدة عملاء مع نفس الهوية المجمعة، لذا يُقلل إجراء هذا التطابق من عدد تفاصيل الوصول المميزة التي يحتاج النواة لتخزينها. يؤدي تحديد الخيار -i إلى كبت هذا التطابق، بحيث يُطلب الوصول إلى كل نظام ملفات ويُخبأ بشكل منفصل لكل عنوان IP للعميل. قد يزيد هذا من عبء تحديث الخبيئة قليلاً، لكنه قد يجعل رسائل السجل الناتجة عن الخيار -l أسهل في القراءة.

-T  أو  --ttl
    يُوفر وقت حياة (TTL) للمعلومات المخبأة المُعطاة للنواة. ستطلب النواة عادةً تحديثًا إذا كانت المعلومات مطلوبة بعد انقضاء نصف هذا الوقت. تؤدي زيادة الرقم المُقدم، والذي يكون بالثواني، إلى تقليل معدل طلبات تحديث الخبيئة، وهذا ملحوظ بشكل خاص عند تسجيل هذه الطلبات باستخدام -l. ومع ذلك، تعني الزيادة أيضًا أن التغييرات في تعيينات اسم المضيف إلى العنوان قد تستغرق وقتًا أطول لملاحظتها. قيمة TTL المبدئية هي 1800 (30 دقيقة).

-F  أو  --foreground
    يُشغّل في المقدمة (لا يُحوّل إلى خدمة خلفية)

-h أو --help
    اعرض رسالة الاستخدام.

-o num  أو  --descriptors num
    يُعيِّن حد عدد واصفات الملفات المفتوحة إلى num. المبدئي هو ترك الحد دون تغيير.

-N mountd-version  أو  --no-nfs-version mountd-version
    يمكن استخدام هذا الخيار لطلب ألا يُقدم rpc.mountd إصدارات معينة من NFS. يمكن للإصدار الحالي من rpc.mountd دعم كل من إصدارات NFS 2 و3 و4. إذا كان ينبغي عدم تقديم أي من هذه الإصدارات، يجب استدعاء rpc.mountd بالخيار --no-nfs-version <vers> .

-n  أو  --no-tcp
    لا يُعلن عن TCP للوصل.

-p num  أو  -P num  أو  --port num
    يُحدد رقم المنفذ المستخدم لمقابس الاستماع RPC. إذا لم يُحدد هذا الخيار، سيحاول rpc.mountd استشارة /etc/services، وإذا نجح في الحصول على المنفذ، يُعيِّن نفس المنفذ لجميع مقابس الاستماع، وإلا يختار منفذًا عابرًا عشوائيًا لكل مقبس استماع.

    يمكن استخدام هذا الخيار لتثبيت قيمة منفذ مستمعي rpc.mountd عندما يجب أن تعبر طلبات وصل NFS جدار حماية بين العملاء والخوادم.

-H  prog أو  --ha-callout prog
    يُحدد برنامج استدعاء عالي التوفر. يستقبل هذا البرنامج استدعاءات لجميع طلبات MOUNT وUNMOUNT. يسمح هذا باستخدام rpc.mountd في بيئة NFS عالية التوفر (HA-NFS).

    يُشغّل برنامج الاستدعاء مع 4 وسائط. الأول هو mount أو unmount اعتمادًا على سبب الاستدعاء. الثاني سيكون اسم العميل الذي ينفذ الوصل. الثالث سيكون المسار الذي يركبه العميل. الأخير هو عدد التراكيب المتزامنة التي نعتقد أن العميل لديه لهذا المسار.

    هذا الاستدعاء غير مطلوب مع نوى 2.6 والإصدارات الأحدث. بدلاً من ذلك، يُركب نظام ملفات nfsd على /proc/fs/nfsd.

-s, --state-directory-path directory
    حدد دليلاً لوضع معلومات الحالة فيه (etab و rmtab). إذا لم يتم تحديد هذا الخيار، يُستخدم المسار المبدئي /var/lib/nfs.

-r, --reverse-lookup
    يتتبع rpc.mountd عناوين IP في ملف rmtab. عند تقديم طلب DUMP (على سبيل المثال، بواسطة شخص يشغل showmount -a)، فإنه يُرجع عناوين IP بدلاً من أسماء المضيفين بشكل مبدئي. يتسبب هذا الخيار في قيام rpc.mountd بإجراء بحث عكسي على كل عنوان IP وإرجاع اسم المضيف بدلاً من ذلك. قد يكون لتمكين هذا تأثير سلبي كبير على الأداء في بعض الحالات.

-t N أو --num-threads=N أو --num-threads N
    يحدد هذا الخيار عدد سلاسل العمليات العاملة التي يُنشئها rpc.mountd. المبدئي هو سلسلة واحدة، وهو كافٍ على الأرجح. عادةً ما تكون هناك حاجة إلى سلاسل أكثر فقط لخوادم NFS التي تحتاج إلى التعامل مع عواصف تثبيت لمئات من تثبيتات NFS في بضع ثوانٍ، أو عندما يكون خادم DNS الخاص بك بطيئًا أو غير موثوق.

-u  أو  --no-udp
    لا تُعلن عن UDP للتثبيت

-V version  أو  --nfs-version version
    يمكن استخدام هذا الخيار لطلب أن يُقدم rpc.mountd إصدارات معينة من NFS. يمكن للإصدار الحالي من rpc.mountd دعم كل من NFS الإصدار 2 والإصدار الأحدث 3.

-v  أو  --version
    اطبع إصدار rpc.mountd واخرج.

-c  أو  --apply-root-cred
    عندما يُطلب من mountd السماح بتثبيت NFSv3 لدليل فرعي من الدليل المُصدَّر، فإنه سيتحقق مما إذا كان المستخدم الذي يطلب التثبيت لديه حقوق بحث في الأدلة أسفل ذلك الدليل المُصدَّر. عند إجراء التحقق، سيطبق mountd أي قواعد ضغط الجذر أو ضغط الكل التي تم تحديدها لذلك العميل. يتطلب إجراء فحوصات البحث كمستخدم أن يتم تشغيل برنامج mountd الخفي كجذر أو أن تُمنح صلاحيات CAP_SETUID و CAP_SETGID حتى يتمكن من تغيير إعدادات المستخدم الفعال والمجموعة الفعالة الخاصة به. عند استكشاف الأخطاء وإصلاحها، يُرجى أيضًا ملاحظة أن أطر عمل LSM مثل SELinux يمكنها أحيانًا منع البرنامج الخفي من تغيير المستخدم/المجموعات الفعالة على الرغم من إعدادات الصلاحية. في الإصدارات السابقة من mountd، تم إجراء نفس الفحوصات باستخدام صلاحيات الجذر لبرنامج mountd الخفي، مما يعني أنه يمكنه تفويض الوصول إلى الأدلة التي لا يمكن للمستخدم الذي يطلب تثبيتها الوصول إليها عادةً. يُفعّل هذا الخيار هذا السلوك القديم. ملاحظة: إذا كانت هناك حاجة لتوفير الوصول إلى أدلة فرعية محددة لا يمكن للعميل الوصول إليها عادةً، فمن الممكن دائمًا إضافة إدخالات تصدير تمنح هذا الوصول صراحةً. لا تعتمد هذه القدرة على تمكين هذا الخيار.

-g  أو  --manage-gids
    اقبل الطلبات من النواة لتعيين أرقام معرفات المستخدمين إلى قوائم أرقام معرفات المجموعات لاستخدامها في التحكم بالوصول. سيحتوي طلب NFS عادةً (باستثناء عند استخدام Kerberos أو الاستيثاق التشفيري الآخر) على معرف مستخدم وقائمة من معرفات المجموعات. بسبب قيود في بروتوكول NFS، يمكن إدراج 16 معرف مجموعة على الأكثر. إذا استخدمت العلامة -g، فسيتم استبدال قائمة معرفات المجموعات المستلمة من العميل بقائمة من معرفات المجموعات المحددة بواسطة بحث مناسب على الخادم. لاحظ أن معرف المجموعة 'الأساسي' لا يتأثر، لذا فإن أمر newgroup على العميل سيظل فعالاً. تتطلب هذه الوظيفة نواة لينكس بإصدار لا يقل عن 2.6.21.

-L  أو  --no-netlink
    عطّل استخدام netlink للاتصال بالنواة وافرض استخدام واجهات /proc/net/rpc القديمة بدلاً من ذلك. يمكن أن يكون هذا مفيدًا لتصحيح الأخطاء أو للتعامل مع مشكلات netlink في النواة.

ملف الضبط
يمكن التحكم في العديد من الخيارات التي يمكن تعيينها في سطر الأوامر أيضًا من خلال القيم المحددة في أقسام [mountd] أو، في بعض الحالات، [nfsd] من ملف التهيئة /etc/nfs.conf. تشمل القيم المعترف بها في قسم [mountd]: manage-gids وno-netlink وcache-use-ipaddr وdescriptors وport وthreads وttl وreverse-lookup وstate-directory-path وha-callout، ولكل منها نفس تأثير الخيار الذي يحمل الاسم نفسه. تشمل القيم المعترف بها في قسم [nfsd]: TCP وUDP وvers3 وvers4، ولكل منها نفس المعنى المقدم بواسطة rpc.nfsd(8).

دعم TCP_WRAPPERS
يمكنك حماية مستمعي rpc.mountd باستخدام مكتبة tcp_wrapper أو iptables(8).

لاحظ أن مكتبة tcp_wrapper تدعم شبكات IPv4 فقط.

أضف أسماء المضيفين لأقران NFS المسموح لهم بالوصول إلى rpc.mountd إلى /etc/hosts.allow. استخدم اسم الخفي mountd حتى لو كان الملف الثنائي rpc.mountd له اسم مختلف.

سيتم تجاهل أسماء المضيفين المستخدمة في أي من ملفي الوصول عندما لا يمكن حلها إلى عناوين IP. لمزيد من المعلومات، راجع صفحات الدليل tcpd(8) وhosts_access(5).

  دعم IPv6 و TI-RPC
TI-RPC هو شرط أساسي لدعم NFS على IPv6. إذا تم تضمين دعم TI-RPC في rpc.mountd، فإنه يحاول بدء المستمعين على وسائط النقل الشبكية الموسومة بـ 'visible' في /etc/netconfig. طالما بدأ مستمع نقل شبكي واحد على الأقل بنجاح، سيعمل rpc.mountd.

الملفات

/etc/exports
    ملف الإدخال لـ exportfs، يسرد الصادرات وخيارات التصدير وقوائم التحكم في الوصول

/var/lib/nfs/rmtab
    جدول العملاء الذين يصلون إلى صادرات الخادوم

انظر أيضًا
exportfs(8), exports(5), showmount(8), rpc.nfsd(8), rpc.rquotad(8), nfs(5), nfs.conf(5), tcpd(8), hosts_access(5), iptables(8), netconfig(5)

RFC 1094 - "NFS: مواصفات بروتوكول نظام ملفات الشبكة"
RFC 1813 - "NFS الإصدار 3 مواصفات البروتوكول"
RFC 7530 - "بروتوكول نظام الملفات الشبكي (NFS) الإصدار 4"
RFC 8881 - "بروتوكول نظام الملفات الشبكي (NFS) الإصدار 4 الإصدار الفرعي 1"

المؤلف
Olaf Kirch وH. J. Lu وG. Allan Morris III وآخرون كثيرون.

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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