.nh .TH fuse\-overlayfs 1 "User Commands" .SH "نام (NAME)" .PP fuse\-overlayfs \- ترکیب درخت‌های دایرکتوری در فضای کاربری .SH "خلاصه دستور (SYNOPSIS)" .TP سوار کردن (mounting) \fBfuse\-overlayfs\fP [\fB\-f\fP] [\fB\-d\fP] [\fB\-o\fP \fIOPTION\fP[,\fIOPTION2\fP, ...]] \fImountpoint\fP .TP پیاده کردن (unmounting) \fBfusermount \-u\fP \fImountpoint\fP .SH "توضیحات (DESCRIPTION)" .PP دستور \fBfuse\-overlayfs\fP دو یا چند درخت دایرکتوری را با یکدیگر ترکیب (هم‌پوشانی یا overlay) می‌کند. این ابزار می‌تواند توسط کاربران فاقد امتیاز در یک فضای نام کاربری (user namespace) استفاده شود. این برنامه با FUSE ساخته شده است و با لینوکس 4.18 یا جدیدتر کار می‌کند. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-f\fP اجرا در پیش‌زمینه. .TP \fB\-d\fP, \fB\-\-debug\fP, \fB\-o debug\fP فعال‌سازی حالت اشکال‌زدایی؛ خروجی این حالت می‌تواند بسیار پرحجم و شلوغ باشد. .TP \fB\-o lowerdir\fP=\fIlow1\fP[\fI:low2...\fP] فهرستی از دایرکتوری‌ها که با \fB\fC:\fR\& از یکدیگر جدا شده‌اند. محتوای آن‌ها ادغام می‌شود. .TP \fB\-o upperdir\fP=\fIupperdir\fP دایرکتوری‌ای که روی تمام دایرکتوری‌های پایینی (lowerdirs) ادغام می‌شود و تمام تغییرات اعمال‌شده بر روی سیستم فایل در آن نوشته خواهد شد. .TP \fB\-o workdir\fP=\fIworkdir\fP دایرکتوری‌ای که به صورت داخلی توسط fuse\-overlayfs استفاده می‌شود؛ این پوشه باید روی همان سیستم فایلِ \fIupperdir\fP قرار داشته باشد. .PP \fB\-o uidmapping\fP=\fIUID:MAPPED\-UID:LEN\fP[\fI,UID2:MAPPED\-UID2:LEN2\fP] .TP \fB\-o gidmapping\fP=\fIGID:MAPPED\-GID:LEN\fP[\fI,GID2:MAPPED\-GID2:LEN2\fP] مشخص کردن نگاشت پویای UID/GID مورد استفاده توسط fuse\-overlayfs هنگام خواندن/نوشتن فایل‌ها در سیستم. .TP \fB\-o squash\_to\_root\fP مالکیت تمام فایل‌ها و دایرکتوری‌ها را به کاربر ریشه (0:0) اختصاص می‌دهد. .PP \fB\-o squash\_to\_uid\fP=\fIuid\fP .TP \fB\-o squash\_to\_gid\fP=\fIgid\fP مالکیت تمام فایل‌ها و دایرکتوری‌ها را به uid یا gid مشخص‌شده اختصاص می‌دهد. این گزینه نسبت به \fBsquash\_to\_root\fP\& اولویت بالاتری دارد. .TP \fB\-o static\_nlink\fP مقدار \fB\fCst\_nlink\fR را برای تمام دایرکتوری‌ها روی مقدار ثابت 1 تنظیم می‌کند. این گزینه می‌تواند برای سیستم‌های فایل با تأخیر بالاتر مانند NFS مفید باشد، جایی که شمارش تعداد پیوندهای سخت برای یک دایرکتوری با فایل‌های بسیار، ممکن است عملیاتی کند باشد. با فعال بودن این گزینه، تعداد پیوندهای سخت گزارش‌شده هنگام اجرای stat برای هر دایرکتوری برابر با 1 خواهد بود. .TP \fB\-o noacl\fP غیرفعال کردن پشتیبانی از ACL در سیستم فایل FUSE. .TP \fB\-o xino\fP=\fBoff\fP|\fBauto\fP|\fBon\fP چگونگی تولید مقادیر \fB\fCst\_ino\fR را برای فایل‌های بازگردانده شده توسط fuse\-overlayfs کنترل می‌کند. هنگامی که تمام لایه‌های پایینی و بالایی روی یک دستگاهِ زیرین یکسان قرار دارند، fuse\-overlayfs شماره inode واقعی را از سیستم فایل زیرین ارائه می‌دهد. هنگامی که لایه‌ها روی چندین دستگاه پخش شده‌اند، یک شماره inode مبهم تولید می‌شود؛ به صورت پیش‌فرض این مقدار در طول سوار کردن‌های مختلف پایدار نیست. .PP گزینهٔ \fB\fCxino\fR این رفتار را تغییر می‌دهد: .TP \fBxino\fP=\fBoff\fP تولید inode گسترش‌یافته را غیرفعال می‌کند. این مطابق با رفتار پیش‌فرض است: وقتی تمام لایه‌ها روی یک دستگاه قرار دارند، از شماره inode زیرین استفاده می‌شود؛ در غیر این صورت یک شماره inode مبهم و ناپایدار بازگردانده می‌شود. .TP \fBxino\fP=\fBauto\fP تلاش می‌کند تا با هش کردن هندل فایل بازگردانده شده توسط \fB\fCname\_to\_handle\_at(2)\fR\&، شماره‌های inode پایداری را در طول سوار کردن‌های مختلف ایجاد کند. این حالت تنها در صورتی استفاده می‌شود که تمام لایه‌ها از \fB\fCname\_to\_handle\_at(2)\fR پشتیبانی کنند؛ اگر هر یک از لایه‌ها پشتیبانی نکند، رفتار به \fB\fCxino=off\fR\& بازمی‌گردد. اگر تمام لایه‌ها روی یک دستگاه باشند، صرف‌نظر از این تنظیم، همچنان از شماره inode زیرین استفاده می‌شود. .TP \fBxino\fP=\fBon\fP نیازمند این است که تمام لایه‌ها از \fB\fCname\_to\_handle\_at(2)\fR\& پشتیبانی کنند. اگر پشتیبانی کنند، شماره‌های inode از یک هشِ هندل فایل به دست می‌آیند و در طول سوار کردن‌های مختلف پایدار می‌مانند. اگر هر یک از لایه‌ها از \fB\fCname\_to\_handle\_at(2)\fR پشتیبانی نکند، عملیات سوار کردن با شکست مواجه می‌شود. همانند سایر حالت‌ها، هنگامی که تمام لایه‌ها روی یک دستگاه قرار دارند، شماره inode زیرین همواره اولویت دارد. .TP \fB\-o ino32\_t\fP اجبار می‌کند که تمام مقادیر \fB\fCst\_ino\fR بازگردانده شده به ۳۲ بیت کوتاه شوند. این گزینه صرفاً برای سازگاری با فضاهای کاربری ۳۲ بیتی قدیمی‌تری وجود دارد که نمی‌توانند شماره‌های inode شصت و چهار بیتی را به درستی پردازش کنند. این گزینه هیچ مزیت کاربردی در سیستم‌های امروزی ندارد و نباید از آن استفاده شود مگر اینکه برای سازگاری با سیستم‌های قدیمی‌تر ضروری باشد. .TP \fB\-h\fP, \fB\-\-help\fP نمایش گزینه‌های اضافی ارائه شده توسط FUSE. .TP \fB\-V\fP, \fB\-\-version\fP نمایش نسخهٔ fuse\-overlayfs و FUSE. .SH "نگاشت پویای UID و GID (DYNAMIC UID AND GID MAPPING)" .PP نگاشت پویای fuse\-overlayfs روشی جایگزین و کم‌هزینه‌تر نسبت به chown کردن فایل‌ها روی میزبان برای انطباق با تنظیمات فضای نام کاربری است. .PP این قابلیت برای به اشتراک‌گذاری یک فضای ذخیره‌سازی یکسان بین فضاهای نام کاربری مختلف و خنثی کردن اثر نگاشت انجام‌شده توسط خود فضای نام کاربری، بدون نیاز به chown کردن فایل‌ها، بسیار مفید است. .PP به عنوان مثال، دو فایل با شناسه‌های کاربر و گروه زیر را در نظر بگیرید: .PP .RS .nf $ stat \-c %u:%g lower/a lower/b 0:0 1:1 .fi .RE .PP همچنین به پیکربندی فضای نام کاربری زیر توجه کنید: .PP .RS .nf $ cat /proc/self/uid\_map 0 1000 1 1 110000 65536 .fi .RE .PP پس از سوار کردن با fuse\-overlayfs، مالکیت به شکل زیر تغییر خواهد کرد: .PP .RS .nf $ stat \-c %u:%g merged/a merged/b 65534:65534 65534:65534 .fi .RE .PP مقدار 65534 همان شناسهٔ سرریز (overflow ID) است که هنگام ناشناخته بودن UID/GID در داخل فضای نام کاربری استفاده می‌شود. این اتفاق به این دلیل رخ می‌دهد که هیچ‌کدام از شناسه‌های کاربری 0 یا 1 نگاشت نشده‌اند. .PP برای نگاشت آن‌ها، سیستم فایل fuse\-overlayfs را با استفاده از پیکربندی فضای نام زیر سوار می‌کنیم: .PP .RS .nf \-o uidmapping=0:1000:1:1:110000:65536,gidmapping=0:1000:1:1:110000:65536 .fi .RE .PP نتیجه به صورت زیر خواهد بود: .PP .RS .nf $ stat \-c %u:%g merged/a merged/b 0:0 1:1 .fi .RE .PP این شناسه‌ها همان‌هایی هستند که از بیرونِ فضای نام کاربری نیز قابل مشاهده‌اند. .SH "همچنین ببینید (SEE ALSO)" .PP \fBfuse\fP(8), \fBmount\fP(8), \fBuser\_namespaces\fP(7) .SH "در دسترس بودن (AVAILABILITY)" .PP دستور fuse\-overlayfs از طریق \fBhttps://github.com/containers/fuse\-overlayfs\fP تحت مجوز عمومی گنو (GNU GENERAL PUBLIC LICENSE) نسخهٔ ۳ یا بالاتر در دسترس است.