NSENTER(1)

الاسم
nsenter - يشغل برنامجاً في نطاقات أسماء مختلفة

موجز

nsenter [خيارات] [برنامج [وسائط]]

الوصف

ينفذ الأمر nsenter البرنامج برنامج في مساحة (مساحات) الأسماء المحددة في خيارات سطر الأوامر (الموصوفة أدناه). إذا لم يُعطَ برنامج، فستُشغل "${SHELL}" (المبدئي: /bin/sh).

نطاقات الأسماء القابلة للدخول هي:

نطاق تسمية الوصل
    وصل وفصل أنظمة الملفات لن يؤثر على بقية النظام، باستثناء أنظمة الملفات التي وُسمت صراحةً بأنها مشتركة (باستخدام mount --make-shared؛ راجع /proc/self/mountinfo بحثاً عن علامة shared). لمزيد من التفاصيل، راجع mount_namespaces(7) ومناقشة علامة CLONE_NEWNS في clone(2).

نطاق تسمية UTS
    ضبط اسم المضيف أو اسم النطاق لن يؤثر على بقية النظام. لمزيد من التفاصيل، راجع uts_namespaces(7).

IPC namespace
    سيكون للعملية نطاق تسمية مستقل لصفوف رسائل POSIX بالإضافة إلى صفوف رسائل System V، ومجموعات السيمافور وقطع الذاكرة المشتركة. لمزيد من التفاصيل، راجع ipc_namespaces(7).

network namespace
    سيكون للعملية كدسات IPv4 و IPv6 مستقلة، وجداول توجيه IP، وقواعد جدار الحماية، وأشجار أدلة /proc/net و /sys/class/net، والمقابس، وما إلى ذلك. لمزيد من التفاصيل، راجع network_namespaces(7).

PID namespace
    سيكون للأبناء مجموعة من تخطيطات PID للعملية منفصلة عن عملية nsenter. سيقوم nsenter بالتفرع (fork) مبدئياً إذا غُير نطاق تسمية PID، ليتشارك البرنامج الجديد وأبناؤه نفس نطاق تسمية PID ويكونوا مرئيين لبعضهم البعض. إذا استُخدم --no-fork، سيُنفذ البرنامج الجديد دون تفرع. لمزيد من التفاصيل، راجع pid_namespaces(7).

نطاق تسمية المستخدم
    سيكون للعملية مجموعة متميزة من معرفات المستخدمين (UIDs)، ومعرفات المجموعات (GIDs) والقدرات. لمزيد من التفاصيل، راجع user_namespaces(7).

نطاق تسمية cgroup
    سيكون للعملية عرض وهمي لـ /proc/self/cgroup، وستجذر عمليات وصل cgroup الجديدة عند جذر cgroup لنطاق التسمية. لمزيد من التفاصيل، راجع cgroup_namespaces(7).

نطاق تسمية الوقت
    يمكن للعملية أن تمتلك عرضاً متميزاً لـ CLOCK_MONOTONIC و/أو CLOCK_BOOTTIME والذي يمكن تغييره باستخدام /proc/self/timens_offsets. لمزيد من التفاصيل، راجع time_namespaces(7).

إذا أردت إنشاء فضاء أسماء جديد، استخدم unshare(1). وبمجرد إنشائه، يمكنك تشغيل برنامج فيه باستخدام nsenter.

الخيارات

العديد من الخيارات أدناه المتعلقة بنطاقات الأسماء تأخذ وسيط ملف اختياريًّا. يجب أن يكون هذا أحد ملفات /proc/[pid]/ns/* الموصوفة في namespaces(7)، أو مسار وصلة ربط (bind mount) وُصلت على أحد تلك الملفات.

-a، --all
    ادخل جميع فضاءات أسماء العملية المستهدفة عبر مسارات فضاءات الأسماء المبدئية /proc/<pid>/ns/*. يمكن تجاوز المسارات المبدئية لفضاءات أسماء العملية المستهدفة بخيارات مخصصة لفضاءات الأسماء (مثل، --all --mount=مسار).

    سيُتجاهل فضاء أسماء المستخدم إذا كان هو نفسه فضاء أسماء المستخدم الحالي لـ المستدعِي. يمنع هذا المستدعِي الذي أسقط قدراته من استعادتها عبر استدعاء setns(2). راجع صفحة الدليل لمزيد من التفاصيل.

-t، --target PID[:inode]
    حدد عملية هدف للحصول على السياقات منها. مسارات السياقات المحددة بواسطة " "معرّف_العملية (PID) هي:

        /proc/pid/ns/mnt
            نطاق أسماء الوصل

        /proc/pid/ns/uts
            نطاق أسماء UTS

        /proc/pid/ns/ipc
            نطاق أسماء IPC

        /proc/pid/ns/net
            نطاق أسماء الشبكة

        /proc/pid/ns/pid
            نطاق أسماء معرف العمليات

        /proc/pid/ns/user
            نطاق أسماء المستخدم

        /proc/pid/ns/cgroup
            نطاق أسماء cgroup

        /proc/pid/ns/time
            نطاق أسماء الوقت

        /proc/pid/root
            الدليل الجذر

        /proc/pid/cwd
            دليل العمل على التوالي

    اختيارياً، يمكن عنونة العملية بالتنسيق PID:inode. يحدد inode واصف الملف الفريد للعملية. لاسترجاع رقم inode الخاص بالعملية، يمكنك استخدام أداة getino(1).

-m، --mount[=ملف|=:nsid]
    لولوج فضاء أسماء الوصل. إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء الوصل للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء الوصل المحدد بواسطة ملف أو nsid.

-u، --uts[=ملف|=:nsid]
    لولوج فضاء أسماء UTS. إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء UTS للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء UTS المحددة بواسطة ملف أو nsid.

-i، --ipc[=ملف|=:nsid]
    لولوج فضاء أسماء IPC. إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء IPC للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء IPC المحددة بواسطة ملف أو nsid.

-n، --net[=ملف|=:nsid]
    لولوج فضاء أسماء الشبكة. إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء الشبكة للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء الشبكة المحدد بواسطة ملف أو nsid.

-N، --net-socket fd
    لولوج مساحة أسماء الشبكة لمقبس العملية المستهدفة. يتطلب هذا تحديد عملية باستخدام --target. متاح منذ نسخة نواة لينكس 5.6.

-p، --pid[=ملف|=:nsid]
    لولوج فضاء أسماء معرف العملية (PID). إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء PID للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء PID المحدد بواسطة ملف أو nsid.

-U، --user[=ملف|=:nsid]
    يدخل مساحة أسماء المستخدم. إذا لم يُحدد معامل، فإنه يدخل مساحة أسماء المستخدم للعملية المستهدفة. إذا حُدد ملف file أو :nsid، فإنه يدخل مساحة أسماء المستخدم المحددة بالملف أو المعرف. انظر أيضاً خياري ‎--setuid‎ و ‎--setgid‎.

--user-parent
    لولوج مساحة أسماء المستخدم الأب. سيتم الحصول على مساحة أسماء المستخدم الأب من أي مساحة أسماء أخرى مفعلة. وإذا جُمع مع خيار --user، فسيتم جلب مساحة أسماء المستخدم الأب من مساحة أسماء المستخدم واستبدالها بها.

-C، --cgroup[=ملف|=:nsid]
    لولوج فضاء أسماء مجموعات التحكم (cgroup). إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء cgroup للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء cgroup المحدد بواسطة ملف أو nsid.

-T، --time[=ملف|=:nsid]
    لولوج فضاء أسماء الوقت. إذا لم تُحدد معلمة، فسيتم ولوج فضاء أسماء الوقت للعملية المستهدفة. أما إذا حُدد ملف أو :nsid، فسيتم ولوج فضاء أسماء الوقت المحدد بواسطة ملف أو nsid.

-G، --setgid gid
    لضبط معرف المجموعة (GID) الذي سيُستخدم في مساحة الأسماء التي لُج إليها وإهمال المجموعات الإضافية. يضبط nsenter دائماً الـ GID لمساحات أسماء المستخدمين، والقمية المبدئية هي 0. إذا حُدد المعطى "follow"، فسيُستخدم الـ GID الخاص بالعملية المستهدفة.

-S، --setuid uid
    لضبط معرف المستخدم (UID) الذي سيُستخدم في مساحة الأسماء التي لُج إليها. يضبط nsenter دائماً الـ UID لمساحات أسماء المستخدمين، والقيمة المبدئية هي 0. إذا حُدد المعطى "follow"، فسيُستخدم الـ UID الخاص بالعملية المستهدفة.

--keep-caps
    عند إعطاء خيار --user، يتم التأكد من أن الإمكانات الممنوحة في مساحة أسماء المستخدم محفوظة في العملية الابنة.

--preserve-credentials
    لا يعدل UID و GID عند دخول مساحة أسماء المستخدم. المبدئي هو إسقاط المجموعات التكميلية وضبط GID و UID على القيمة 0.

-r، --root[=دليل]
    يضبط الدليل الجذر. إذا لم يُحدد دليل، فإنه يضبط الدليل الجذر ليكون هو نفسه الدليل الجذر للعملية المستهدفة. إذا حُدد دليل، فإنه يضبط الدليل الجذر إلى الدليل المحدد. يُفتح الدليل directory المحدد قبل الانتقال إلى مساحات الأسماء المطلوبة.

-w، --wd[=دليل]
    يضبط دليل العمل. إذا لم يُحدد دليل، فإنه يضبط دليل العمل ليكون هو نفسه دليل عمل العملية المستهدفة. إذا حُدد دليل، فإنه يضبط دليل العمل إلى الدليل المحدد. يُفتح الدليل directory المحدد قبل الانتقال إلى مساحات الأسماء المطلوبة، مما يعني أن الدليل المحدد يعمل بمثابة "نفق" إلى مساحة الأسماء الحالية. انظر أيضاً ‎--wdns‎.

-W، --wdns[=دليل]
    يضبط دليل العمل. يُفتح الدليل directory بعد الانتقال إلى مساحات الأسماء المطلوبة وبعد استدعاء ‎chroot(2)‎. الخياران ‎--wd‎ و ‎--wdns‎ متعارضان.

-e، --env
    يمرر متغيرات البيئة من العملية المستهدفة إلى العملية الجديدة التي يتم إنشاؤها. إذا لم يُقدم هذا الخيار، فستبقى متغيرات البيئة كما هي في مساحة الأسماء الحالية.

-F، --no-fork
    عدم إجراء تفريع (fork) قبل تنفيذ (exec) البرنامج المحدد. مبدئياً، عند ولوج مساحة أسماء PID، يستدعي nsenter الأمر fork قبل استدعاء exec لكي تكون أي عمليات ابنة أيضاً ضمن مساحة أسماء PID التي لُج إليها حديثاً.

-Z، --follow-context
    يضبط سياق أمان SELinux المستخدم لتنفيذ عملية جديدة وفقاً للعملية التي تعمل بالفعل والمحددة بواسطة PID في ‎--target‎. (يجب ترجمة util-linux مع دعم SELinux وإلا فإن الخيار لن يتوفر.)

-c، --join-cgroup
    أضِف العملية التي بدأت إلى cgroup الخاصة بالعملية المستهدفة.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

ملاحظات

يتطلب خيار --user-parent نواة لينكس 4.9 أو أحدث، الإصدارات الأقدم ستصدر خطأ ioctl غير مناسب للجهاز.

يتطلب تحديد مساحات الأسماء بواسطة nsid إصدار لينكس 6.19 أو أعلى. إذا بدأ اسم ملف مساحة الأسماء بنقطتين، فقم بإلحاق ‎./‎ في البداية لمنع اللبس.

المؤلفين

انظر أيضاً

unshare(1)، lsns(8)، clone(2)، setns(2)، namespaces(7) getino(1)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر nsenter جزء من حزمة util-linux التي يمكن تنزيلها من