سعید جان،
من الان امکان تست روی شبکه را نداشتم، اما با دو کاربری که روی همین سیستم دارم امتحان کردم، این کارها را کردم:
- یک فولدر در فولدر کاربر خودم(ali) درست کردم به اسم share.
- این فولدر به صورت پیشفرض برای کاربر دیگر read-only بود که تنظیم کردم برای staff هم قابلیت نوشتن فراهم شود (این مورد طبعا برای فولدر Public لازم نمیشود).
- فایلی را با کاربر دیگر در این فولدر ذخیره کردم.
- به کاربر ali برگشتم و فایل را باز کردم، وقتی خواستم ذخیره کنم مشخص شد که امکان نوشتن روی فایل را ندارد.
- دستوری که در آخرین پست لینکی که برایت گذاشته بودم بود را برای کاربر خودم دستکاری کردم و اجرا کردم، که معلوم شد دستور غلطهای تایپی داشته. این دستور صحیح برای کاربر ali و فولدر Users/ali/share
- کد: انتخاب همهٔ
sudo chmod -R +a "ali allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/ali/share
- بعد از اجرای این دستور فایل ذخیره شده با کاربر دیگر برای کاربر من قابل ویرایش شد (اگر نمیخواهی به فایلها و فولدرهای فعلی موجود در فولدر مورد نظرت کاری داشته باشی میتوانی R- را از دستور بالا حذف کنی).
- دوباره به کاربر دیگر رفتم، فایل جدیدی ساختم و آن را در Users/ali/share ذخیره کردم.
- به کاربر ali برگشتم، فایل جدید بدون هیچ کار اضافهای قابل ویرایش بود.
دستور بالا چه کار کرد؟
دستور بالا از طریق (ACL (Access Control List مشخص کرد که اولا یک سری اختیارات ایجاد و حذف و جستجو و... برای فولدر Users/ali/share متعلق به کاربر ali است. در نهایت هم مشخص کرد که این اختیارات به فایلها و فولدرهای جدید به ارث برسد (قسمت inherit دستور).
من حدس میزنم این دستور را اگر با نام کاربر خودت و مسیر صحیح فولدر Public عوض کنی مشکلت در شبکه هم حل شود، اما به دلیل نقش خاص فولدر Public شاید عوض کردن مجوزهایش خیلی فکر خوبی نباشد (یا شاید من زیادی محتاطم)، توصیه میکنم یک فولدر جدید درست کنی و آن را از قسمت File Sharing با زدن + به فولدرهای شیر شده اضافه کنی و دستور بالا را در مورد آن فولدر اجرا کنی، تا اگر نتایج دلخواه نبود برایت مهم نباشد.
در نهایت اینکه این قابلیت ACL فکر کنم از زمان تایگر بوده اما رابط گرافیکی در نسخههای عادی سیستم عامل ندارد، روی سرور باید داشته باشد. من دستور بالا را روی موریکس امتحان کردم، احتمالا عین همان دستور در نسخههای قبلی هم جواب میدهد.