.TH mfsexports.cfg "5" "May 2026" "MooseFS 4.59.2-1" "This is part of MooseFS" .ss 12 0 .SH "نام (NAME)" mfsexports.cfg \- کنترل دسترسی MooseFS برای کلاینت‌های \fBmfsmount\fP .SH "توضیحات (DESCRIPTION)" پروندهٔ \fBmfsexports.cfg\fP حاوی فهرست کنترل دسترسی MooseFS برای کلاینت‌های \fBmfsmount\fP است. .SH "نحو (SYNTAX)" .PP نحو به این صورت است: .TP \fIADDRESS\fP \fIDIRECTORY\fP [\fIOPTIONS\fP] .PP خطوطی که با نویسهٔ \fB#\fP شروع می‌شوند به عنوان توضیح نادیده گرفته می‌شوند. .PP \fIADDRESS\fP می‌تواند به چندین شکل مشخص شود: .PP .nf .ta +2i \fB*\fP all addresses \fBn.n.n.n\fP single IP address \fBn.n.n.n/b\fP IP class specified by network address and number of significant bits \fBn.n.n.n/m.m.m.m\fP IP class specified by network address and mask \fBf.f.f.f-t.t.t.t\fP IP range specified by from-to addresses (inclusive) .fi .PP \fIDIRECTORY\fP می‌تواند \fB/\fP یا مسیری نسبت به ریشهٔ MooseFS باشد؛ مقدار ویژهٔ \fB.\fP به معنای فایل‌سیستم همراه MFSMETA است. .PP فهرست \fIOPTIONS\fP: .TP .BR ro ", " readonly اکسپورت درخت در حالت فقط‌خواندنی؛ این مقدار پیش‌فرض است .TP .BR rw ", " readwrite اکسپورت درخت در حالت خواندن-نوشتن .TP .B alldirs امکان اتصال (mount) هر زیرشاخه از دایرکتوری مشخص‌شده را می‌دهد (مشابه با NFS) .TP .B dynamicip امکان اتصال مجدد کلاینت احراز هویت‌شده از هر نشانی IP را فراهم می‌سازد (پیش‌فرض، بررسی نشانی IP در هنگام اتصال مجدد است) .TP .B ignoregid غیرفعال کردن بررسی دسترسی گروهی در سطح \fBmfsmaster\fP (همچنان در سطح \fBmfsmount\fP انجام می‌شود) \- در این حالت مجوزهای "group" و "other" به صورت منطقی جمع (OR) می‌شوند؛ برای کارکرد گروه‌های ثانویه (supplementary groups) لازم است (\fBmfsmaster\fP تنها اطلاعات گروه اصلی کاربر را دریافت می‌کند) .TP .B admin مجوزهای مدیریتی: .sp 0 تغییر مقادیر سهمیه (quota) .sp 0 مدیریت کلاس‌های ذخیره‌سازی \- افزودن، حذف، ویرایش .sp 0 مدیریت الگوها \- افزودن، حذف .sp 0 استفاده از کلاس‌های ذخیره‌سازی با پرچم admin (تنظیم، بازنویسی) .sp 0 دستکاری پرچم‌های UNDELETABLE، APPENDONLY و IMMUTABLE در اشیای فایل‌سیستم .TP \fBmaproot=\fP\fIUSER\fP[\fB:\fP\fIGROUP\fP] دسترسی‌های root (با شناسه uid=0) را به کاربر و گروه مشخص‌شده نگاشت می‌کند (مشابه با گزینهٔ maproot در اتصالات NFS)؛ \fIUSER\fP و \fIGROUP\fP می‌توانند به صورت نام یا شناسه عددی مشخص شوند؛ اگر گروهی مشخص نشود، از گروه اصلی \fIUSER\fP استفاده خواهد شد. نام‌ها در سمت \fBmfsmaster\fP تطبیق داده و شناسایی می‌شوند (یادداشت زیر را ببینید). .TP \fBmapall=\fP\fIUSER\fP[\fB:\fP\fIGROUP\fP] مشابه مورد بالا، اما دسترسی‌های تمام کاربران غیرممتاز (با شناسه uid!=0) را به کاربر و گروه مشخص‌شده نگاشت می‌کند (یادداشت‌های زیر را ببینید). .TP \fBumask=\fP\fI0###\fP این umask با umask کاربر جمع منطقی (OR) شده و umask حاصل در این نقطهٔ اتصال استفاده می‌شود .TP \fBsclassgroups=\fP\fI-|N[:N[:...]]\fP اگر این گزینه تعریف نشود، کاربر می‌تواند هر کلاس ذخیره‌سازی را در این نقطه اتصال تنظیم کند؛ در صورت تعریف، تنها کلاس‌های ذخیره‌سازی متعلق به گروه‌های فهرست‌شده قابل تنظیم خواهند بود؛ برای تعریف بدون گروه (کاربر نتواند هیچ کلاس ذخیره‌سازی تنظیم کند) از علامت '-' (منها) استفاده کنید؛ برای توضیح دربارهٔ نحوهٔ افزودن کلاس ذخیره‌سازی به گروه، \fBmfsscadmin\fP(1) را ببینید؛ برای توضیحات دقیق‌تر، بخش \fBگروه‌های کلاس ذخیره‌سازی (STORAGE CLASS GROUPS)\fP را ببینید .TP \fBpassword=\fP\fIPASS\fP, \fBmd5pass=\fP\fIMD5\fP نیاز به احراز هویت با گذرواژه برای دسترسی به منبع مشخص‌شده .TP \fBminversion=\fP\fIVER\fP رد کردن دسترسی از کلاینت‌های قدیمی‌تر از نسخهٔ مشخص‌شده .TP \fBmintrashretention=\fP\fITIME\fP, \fBmaxtrashretention=\fP\fITIME\fP تعیین بازه‌ای که مدت نگهداری سطل زباله می‌تواند توسط کاربران تنظیم شود .TP \fBmintrashtime=\fP\fITDUR\fP, \fBmaxtrashtime=\fP\fITDUR\fP گزینه‌های منسوخ‌شده (عملکردی مشابه موارد بالا دارند) .TP \fBdisable=\fP\fIOPERATION[:OPERATION[:...]]\fP اجازه ندادن به کلاینت برای انجام عملیات‌های مشخص‌شده .PP گزینه‌های پیش‌فرض عبارتند از: \fBro, maproot=999:999, mintrashretention=0, maxtrashretention=4294967295\fP. .PP توجه! مقدار پیش‌فرض maxtrashretention توسط کاربر قابل تنظیم نیست؛ بنابراین در صورتی که مقداری تنظیم نشود، می‌توان آن را نزدیک به بی‌نهایت در نظر گرفت، اما در صورت تنظیم، بیشینهٔ آن ۶۵۵۳۵ ساعت (~۳۹۰ هفته) است. .SH "یادداشت‌ها (NOTES)" نام‌های \fIUSER\fP و \fIGROUP\fP (اگر با شماره صریح uid/gid تعیین نشده باشند) روی میزبان \fBmfsmaster\fP تفکیک و حل می‌شوند. .PP مقدار TDUR (منسوخ) می‌تواند به عنوان یک عدد بدون واحد زمانی (تعداد ثانیه‌ها) یا ترکیبی از اعداد با واحدهای زمانی مشخص شود. واحدهای زمانی عبارتند از: \fBW\fP، \fBD\fP، \fBH\fP، \fBM\fP، \fBS\fP. ترتیب مهم است \- واحدهای زمانی با اهمیت کمتر نمی‌توانند قبل از واحدهای با اهمیت بیشتر تعریف شوند. .PP مقدار TIME می‌تواند به عنوان تعداد ساعت (عدد صحیح) یا به صورت یک دوره زمانی در یکی از دو قالب ممکن مشخص شود: قالب اول: #.#T که در آن T یکی از مقادیر زیر است: h برای ساعت، d برای روز یا w برای هفته؛ کسرهای کوچک‌ترین واحد به یک مقدار صحیح گرد می‌شوند؛ قالب دوم: #w#d#h که در آن هر تعداد از تعاریف می‌تواند حذف شود، اما تعاریف باقی‌مانده باید مرتب باشند (بنابراین #w#h همچنان یک تعریف معتبر است، اما #h#w معتبر نیست)؛ بازه‌ها: h از ۰ تا ۲۳، d از ۰ تا ۶، w نامحدود است و اولین تعریف نیز همیشه نامحدود است (یعنی برای #d#h مقدار d نامحدود خواهد بود). .PP واحدهای زمانی/دوره‌ها به حروف بزرگ و کوچک حساس نیستند (case insensitive). .PP گزینهٔ \fBmapall\fP در MooseFS به شیوه‌ای متفاوت از NFS عمل می‌کند، زیرا MooseFS از گزینهٔ "default_permissions" در FUSE استفاده می‌کند. هنگامی که گزینهٔ \fBmapall\fP استفاده می‌شود، کاربران تمام اشیایی را که شناسه uid آن‌ها برابر با uid نگاشت‌شده است متعلق به خود و بقیه را به عنوان اشیای root می‌بینند. به طور مشابه، اشیای با gid برابر با gid نگاشت‌شده به عنوان اشیایی با گروه اصلی کاربر جاری و سایر اشیا به عنوان اشیای متعلق به گروه 0 (معمولاً wheel) دیده می‌شوند. با تنظیم گزینهٔ \fBmapall\fP، کش ویژگی‌ها (attribute cache) در هسته همیشه خاموش است. .PP گزینهٔ \fBdisable\fP می‌تواند چندین پارامتر (عملیات‌های غیرفعال‌شونده) را به دو روش دریافت کند: به صورت فهرستی جداشده با دو نقطه (:) یا با تکرار مکرر گزینه. فهرست عملیاتی که می‌توانند غیرفعال شوند: .nf .ta +2i chown - don't allow the client to perform the chown operation chmod - don't allow the client to perform the chmod operation symlink - don't allow the client to create symbolic links mkfifo - don't allow the client to create FIFOs mkdev - don't allow the client to create devices mksock - don't allow the client to create sockets mkdir - don't allow the client to create directories unlink - don't allow the client to remove non directory objects (will also deny move/rename operation if target inode already exists!) rmdir - don't allow the client to remove directories (will also deny move/rename operation if target inode already exists!) rename - don't allow the client to change inodes (files, directories) names move - don't allow the client to move inodes (files, directories) to another path link - don't allow the client to create hard links create - don't allow the client to create new files readdir - don't allow the client to list directories ('ls' command will not work) read - don't allow the client to read from files write - don't allow the client to write to files truncate - don't allow the client to shorten the length of a file with truncate command setlength - don't allow the client to increase the length of a file with truncate command appendchunks - don't allow the client to add chunks from one file to another (mfsappendchunks) snapshot - don't allow the client to create snapshots settrash - don't allow the client to change trash retention time setsclass - don't allow the client to set storage classes seteattr - don't allow the client to set mfs extra attributes setxattr - don't allow the client to set XATTRs setfacl - don't allow the client to set ACLs .fi .SS "گروه‌های کلاس ذخیره‌سازی (STORAGE CLASS GROUPS)" .PP ممکن است مدیر سیستم به دلایل امنیتی نخواهد کاربران MooseFS بتوانند هر کلاس ذخیره‌سازی (Storage Class) دلخواهی را به داده‌ها اعمال کنند. از این رو، MooseFS روشی را برای مجاز کردن استفاده از تنها کلاس‌های ذخیره‌سازی مشخص در یک نقطهٔ اتصال ارائه می‌دهد. .PP ابتدا باید کلاس‌های ذخیره‌سازی انتخاب‌شده به یکی از ۱۶ گروه کلاس ذخیره‌سازی (شماره‌گذاری‌شده از ۰ تا ۱۵) اختصاص داده شوند. این کار هنگام ایجاد یا تغییر یک کلاس ذخیره‌سازی با استفاده از ابزار \fBmfsscadmin\fP انجام می‌شود (\fBmfsscadmin\fP(1) را ببینید). پس از تعریف مناسب گروه، هرگاه گزینهٔ \fBsclassgroups\fP در تعریف اکسپورت نقطهٔ اتصال استفاده شود، کاربری که از این نقطهٔ اتصال اکسپورت‌شده استفاده می‌کند تنها می‌تواند هنگام استفاده از ابزار \fBmfssclass\fP، کلاس‌های ذخیره‌سازی گروه تعریف‌شده را اعمال (تنظیم) کند. .PP مثال: اگر چهار کلاس ذخیره‌سازی مختلف در کلاستر تعریف شده باشد، دو تا از آن‌ها به گروه 0 و دو تا به گروه 1 اختصاص یافته باشند، و اکسپورت نقطهٔ اتصال فقط اجازهٔ استفاده از کلاس‌های گروه 1 را بدهد، کاربران تنها قادر به تنظیم دو کلاسی خواهند بود که به گروه 1 اختصاص دارند؛ تلاش برای تنظیم کلاس ذخیره‌سازی متعلق به گروه 0 منجر به خطا شده و کلاس فایل تغییر نخواهد کرد. این موضوع قاعدهٔ توارث کلاس ذخیره‌سازی را تحت تأثیر قرار نمی‌دهد؛ به این معنی که اگر کاربری فایلی جدید در دایرکتوری متعلق به یک کلاس در گروه 0 ایجاد کند، این فایل متعلق به همان کلاس در گروه 0 خواهد بود. اما اگر کاربر پس از آن کلاس ذخیره‌سازی فایل را به یکی از کلاس‌های مجاز (از گروه 1) تغییر دهد، دیگر نمی‌تواند آن را به کلاس ذخیره‌سازی اصلی بازگرداند، زیرا آن کلاس متعلق به گروه "ممنوعهٔ" 0 است. .PP \fBمهم!\fP گروه پیش‌فرض کلاس ذخیره‌سازی 0 است، مگر اینکه در هنگام ایجاد یا تغییر کلاس ذخیره‌سازی صراحتاً گروه دیگری تعیین شود؛ بنابراین به منظور محدود کردن دسترسی کاربران به کلاس‌های ذخیره‌سازی، بهتر است از شماره گروه‌های بزرگتر از ۰ استفاده شود. .PP \fBسیستم‌های موروثی (Legacy systems)\fP: تا نسخهٔ 4.56.6 MooseFS، سازوکار گروه‌های کلاس ذخیره‌سازی وجود نداشت. در عوض، دو گزینهٔ \fBmingoal\fP و \fBmaxgoal\fP وجود داشتند که از نسخه‌های قبلی MooseFS به ارث رسیده بودند. اگر هر یک از آن‌ها تنظیم می‌شد، کاربر فقط مجاز به استفاده از کلاس‌های ذخیره‌سازی موروثی (کلاس‌هایی با شناسه‌های ۱ تا ۹، به نام "1" تا "9"، با تعاریف KEEP از *1 تا *9) با نامی نه کمتر از \fBmingoal\fP و نه بیشتر از \fBmaxgoal\fP به علاوه هر کلاس تعریف‌شده توسط مدیر (شناسه بزرگتر از ۹) بود. برای شبیه‌سازی این رفتار در صورت ارتقا از نسخه‌ای که هنوز این کلاس‌ها را داشت و همچنین از \fBmingoal\fP و \fBmaxgoal\fP در پیکربندی استفاده می‌کرد، سیستم آن کلاس‌های موروثی "1" تا "9" را به ترتیب به گروه‌های ۱ تا ۹ اختصاص می‌دهد و هر عبارت \fBmingoal\fP و \fBmaxgoal\fP را به عبارت مناسب \fBsclassgroups\fP تبدیل می‌کند. مثال: اگر \fBmingoal\fP روی 3 و \fBmaxgoal\fP روی 5 تنظیم شود، \fBsclassgroups\fP به صورت 0,3,4,5 تنظیم خواهد شد \- 0 برای اینکه کاربران بتوانند از کلاس‌های تعریف‌شده توسط مدیر استفاده کنند، 3,4,5 برای اینکه امکان استفاده از کلاس‌های موروثی "3"، "4" و "5" فراهم شود. تنظیمات قدیمی نباید استفاده شوند؛ مدیران سیستم در عوض باید گروه‌های کلاس ذخیره‌سازی مورد نظر خود را تعریف کرده و صراحتاً از گزینهٔ \fBsclassgroups\fP استفاده کنند. .SH "مثال‌ها (EXAMPLES)" .nf .ta +2i \fB* / ro\fP \fB192.168.1.0/24 / rw\fP \fB192.168.1.0/24 / rw,alldirs,maproot=0,password=passcode\fP \fB10.0.0.0-10.0.0.5 /test rw,maproot=nobody,password=test\fP \fB10.1.0.0/255.255.0.0 /public rw,mapall=1000:1000\fP \fB10.2.0.0/16 / rw,alldirs,maproot=0,mintrashretention=2d12h,maxtrashretention=2w\fP \fB192.168.1.0/24 / rw,disable=unlink:rmdir:truncate\fP \fB192.168.1.0/24 / rw,disable=unlink,disable=rmdir,disable=truncate\fP .fi .SH "گزارش اشکالات (REPORTING BUGS)" گزارش اشکالات به . .SH "حق نشر (COPYRIGHT)" Copyright (C) 2026 Jakub Kruszona-Zawadzki, Saglabs SA .PP This file is part of MooseFS. .PP MooseFS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 (only). .PP MooseFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. .PP You should have received a copy of the GNU General Public License along with this program; if not, see . .SH "همچنین ببینید (SEE ALSO)" .BR mfsmaster (8), .BR mfsmaster.cfg (5)