NSENTER(1) أوامر المستخدم 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 أو أعلى. إذا بدأ اسم ملف مساحة الأسماء بنقطتين، فقم بإلحاق ‎./‎ في البداية لمنع اللبس.

المؤلفين

إريك بيديرمان <biederm@xmission.com>، كاريل زاك <kzak@redhat.com>

انظر أيضاً

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

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

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

التوفر

الأمر nsenter جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1