'\" t .\" Title: namespace.conf .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.79.2 .\" Date: 01/26/2026 .\" Manual: Linux-PAM Manual .\" Source: Linux-PAM .\" Language: Persian .\" .TH "NAMESPACE\&.CONF" "5" "01/26/2026" "Linux\-PAM" "Linux\-PAM Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" namespace.conf \- فایل پیکربندی ماژول pam_namespace .SH "توضیحات (DESCRIPTION)" .PP ماژول \fIpam_namespace\&.so\fR امکان برپاسازی فضاهای نام (namespace) خصوصی را با دایرکتوری‌های چندنمونه‌ای (polyinstantiated) فراهم می‌کند\&. دایرکتوری‌ها می‌توانند بر اساس نام کاربر یا در صورت استفاده از SELinux، بر اساس نام کاربر، سطح حساسیت یا بافت امنیتی کامل چندنمونه‌ای شوند\&. اگر یک اسکریپت اجرایی به نام /etc/security/namespace\&.init وجود داشته باشد، هر بار که یک دایرکتوری نمونه برپا و متصل (mount) می‌شود، برای مقداردهی اولیه فضای نام استفاده می‌گردد\&. این اسکریپت مسیر دایرکتوری چندنمونه‌ای و مسیر دایرکتوری نمونه را به عنوان آرگومان‌های خود دریافت می‌کند\&. این اسکریپت با دسترسی‌های کامل ریشه (root) فراخوانی می‌شود و دسترسی به دایرکتوری نمونه در این بافت باید با احتیاط انجام گیرد، زیرا توسط کاربر غیرممتازی که برای او ایجاد شده است کنترل می‌شود\&. .PP فایل /etc/security/namespace\&.conf مشخص می‌کند که کدام دایرکتوری‌ها چندنمونه‌ای شوند، چگونه چندنمونه‌ای شوند، دایرکتوری‌های نمونه چگونه نام‌گذاری شوند، و برای چه کاربرانی چندنمونه‌سازی انجام نگیرد\&. .PP هنگامی که کاربری وارد سیستم می‌شود، فایل namespace\&.conf پیمایش می‌شود\&. توضیحات با نویسه‌های \fI#\fR مشخص می‌گردند\&. هر خط غیرتوضیحی نمایانگر یک دایرکتوری چندنمونه‌ای است\&. فیلدها با فاصله از هم جدا می‌شوند اما می‌توان آن‌ها را با نویسه‌های \fI"\fR نقل‌قول کرد؛ همچنین دنباله‌های گریز \fI\eb\fR، \fI\en\fR و \fI\et\fR شناخته می‌شوند\&. فیلدها به شرح زیر هستند: .PP \fIpolydir\fR \fIinstance_prefix\fR \fImethod\fR \fIlist_of_uids\fR .PP فیلد اول، \fIpolydir\fR، مسیر مطلق دایرکتوری‌ای است که باید چندنمونه‌ای شود\&. رشته ویژه \fI$HOME\fR با دایرکتوری خانگی کاربر و \fI$USER\fR با نام کاربری جایگزین می‌شود\&. این فیلد نمی‌تواند خالی باشد\&. .PP فیلد دوم، \fIinstance_prefix\fR پیشوند رشته‌ای مورد استفاده برای ساخت نام مسیر نمونه‌سازی است\&. مسیر باید با یک اسلش انتهایی یا با یک پیشوند دایرکتوری برای ساخت مسیر کامل هر نمونه پایان یابد\&. بسته به \fImethod\fR چندنمونه‌سازی، سپس "رشته تمایز نمونه" به آن پیوست می‌شود تا مسیر نهایی دایرکتوری نمونه تولید گردد\&. این دایرکتوری در صورت عدم وجود ایجاد شده و سپس با اتصال متصل‌کننده (bind mount) بر روی متصل می‌شود تا نمونه‌ای از را بر اساس ستون فراهم کند\&. رشته ویژه \fI$HOME\fR با دایرکتوری خانگی کاربر و \fI$USER\fR با نام کاربری جایگزین می‌شود\&. این فیلد نمی‌تواند خالی باشد\&. .PP فیلد سوم، \fImethod\fR، روش مورد استفاده برای چندنمونه‌سازی است\&. این فیلد می‌تواند این مقادیر را بپذیرد: "user" برای چندنمونه‌سازی بر اساس نام کاربر، "level" برای چندنمونه‌سازی بر اساس سطح MLS فرایند و نام کاربر، "context" برای چندنمونه‌سازی بر اساس بافت امنیتی فرایند و نام کاربر، "tmpfs" برای متصل کردن سیستم‌فایل tmpfs به عنوان دایرکتوری نمونه، و "tmpdir" برای ایجاد دایرکتوری موقت به عنوان دایرکتوری نمونه که با بسته شدن نشست کاربر حذف می‌شود\&. روش‌های "context" و "level" فقط با SELinux در دسترس هستند\&. این فیلد نمی‌تواند خالی باشد\&. .PP فیلد چهارم، \fIlist_of_uids\fR، فهرستی جداشده با کاما از نام‌های کاربری است که چندنمونه‌سازی برای آن‌ها انجام نمی‌شود\&. اگر خالی رها شود، چندنمونه‌سازی برای همه کاربران انجام خواهد شد\&. اگر فهرست با یک نویسه "~" آغاز شود، چندنمونه‌سازی فقط برای کاربران موجود در فهرست انجام می‌گیرد\&. .PP فیلد \fImethod\fR همچنین می‌تواند شامل پرچم‌های اختیاری زیر باشد که با نویسه‌های \fI:\fR از هم جدا شده‌اند\&. .PP \fIcreate\fR=\fImode\fR,\fIowner\fR,\fIgroup\fR \- ایجاد دایرکتوری چندنمونه‌ای\&. پارامترهای mode، owner و group اختیاری هستند\&. مقدار پیش‌فرض mode توسط umask تعیین می‌شود، مالک (owner) پیش‌فرض کاربری است که نشست او باز شده است، و گروه (group) پیش‌فرض گروه اصلی کاربر است\&. .PP \fIiscript\fR=\fIpath\fR \- مسیر اسکریپت راه‌اندازی دایرکتوری نمونه\&. دایرکتوری پایه برای مسیرهای نسبی /etc/security/namespace\&.d است\&. .PP \fInoinit\fR \- اسکریپت راه‌اندازی دایرکتوری نمونه اجرا نخواهد شد\&. .PP \fIshared\fR \- دایرکتوری‌های نمونه برای روش‌های "context" و "level" شامل نام کاربر نخواهند بود و بین همه کاربران به اشتراک گذاشته می‌شوند\&. .PP \fImntopts\fR=\fIvalue\fR \- مقدار این پرچم هنگام انجام اتصال tmpfs به فراخوانی mount ارسال می‌شود\&. این گزینه به عنوان مثال امکان تعیین حداکثر اندازه نمونه tmpfs ایجاد شده توسط فراخوانی mount را فراهم می‌کند\&. علاوه بر گزینه‌های مشخص شده در راهنمای \fBtmpfs\fR(5)، پرچم‌های \fInosuid\fR، \fInoexec\fR و \fInodev\fR می‌توانند به ترتیب برای غیرفعال کردن اثر بیت setuid، غیرفعال کردن اجرای فایل‌های اجرایی و غیرفعال کردن تفسیر دستگاه‌ها روی سیستم‌فایل tmpfs متصل‌شده استفاده شوند\&. .PP دایرکتوری‌ای که نمونه‌های چندنمونه‌ای در آن ایجاد می‌شوند، باید وجود داشته باشد و به‌طور پیش‌فرض باید دارای حالت دسترسی (mode) برابر با 0000 باشد\&. شرط داشتن حالت دسترسی 0000 برای دایرکتوری والد نمونه را می‌توان با گزینه خط فرمان \fIignore_instance_parent_mode\fR نادیده گرفت\&. .PP در صورت چندنمونه‌سازی بر اساس context یا level، بافت SELinux که برای چندنمونه‌سازی استفاده می‌شود، بافتی است که برای اجرای فرایند جدید با استفاده از getexeccon دریافت شده است\&. این بافت باید توسط برنامه فراخواننده یا ماژول pam_selinux\&.so تنظیم شود\&. اگر این بافت تنظیم نشده باشد، چندنمونه‌سازی تنها بر اساس نام کاربر خواهد بود\&. .PP "رشته تمایز نمونه" برای روش "user" برابر با و برای روش‌های "context" و "level" برابر با _ است\&. اگر کل رشته بیش از حد طولانی باشد، انتهای آن با md5sum خود جایگزین می‌شود\&. همچنین زمانی که گزینه خط فرمان \fIgen_hash\fR استفاده شود، کل رشته با md5sum خود جایگزین می‌گردد\&. .SH "مثال‌ها (EXAMPLES)" .PP این‌ها چند خط نمونه هستند که ممکن است در /etc/security/namespace\&.conf مشخص شوند\&. .sp .if n \{\ .RS 4 .\} .nf # The following three lines will polyinstantiate /tmp, # /var/tmp and user\*(Aqs home directories\&. /tmp and /var/tmp # will be polyinstantiated based on the security level # as well as user name, whereas home directory will be # polyinstantiated based on the full security context and user name\&. # Polyinstantiation will not be performed for user root # and adm for directories /tmp and /var/tmp, whereas home # directories will be polyinstantiated for all users\&. # # Note that instance directories do not have to reside inside # the polyinstantiated directory\&. In the examples below, # instances of /tmp will be created in /tmp\-inst directory, # where as instances of /var/tmp and users home directories # will reside within the directories that are being # polyinstantiated\&. # /tmp /tmp\-inst/ level root,adm /var/tmp /var/tmp/tmp\-inst/ level root,adm $HOME $HOME/$USER\&.inst/inst\- context .fi .if n \{\ .RE .\} .PP برای سرویس‌هایی () که به چندنمونه‌سازی نیاز دارید (برای مثال login)، خط زیر را در /etc/pam\&.d/ به عنوان آخرین خط برای گروه session قرار دهید: .PP session required pam_namespace\&.so [arguments] .PP این ماژول همچنین به تنظیم بافت توسط pam_selinux\&.so وابسته است\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBpam_namespace\fR(8)، \fBpam.d\fR(5)، \fBpam\fR(8) .SH "نویسندگان (AUTHORS)" .PP صفحه راهنمای namespace\&.conf توسط Janak Desai نوشته شده است\&. ویژگی‌های بیشتر توسط Tomas Mraz افزوده شده است\&.