شما به عنوان یک ادمین سیستم ممکن است یک دایرکتوری خاص داشته باشید که بخواهید دسترسی Read/Write در آن دایرکتوری را به هر کاربری روی یک سرور لینوکس بدهید. در این آموزش مروری بر نحوه فعال کردن دسترسی write به همه یوزرها روی یک دایرکتوری خاص (دایرکتوری مشترک) در لینوکس خواهیم داشت.

به این کار تعریف پرمیژن های دسترسی مناسب گفته میشود و به نحوه موثرتر و مطمئن تر میتوان گفت که روشی برای قرار دادن یک گروه مشترک برای تمام کاربرانی که میخواهیم دسترسی write به پوشه مشخص را میان شان به اشتراک بگذاریم میباشد.

بنابراین کار را با ایجاد directory خاص و همچنین group مشترک که در اینجا از قبل روی سیستم موجود نیست شروع میکنیم.
کد PHP:
sudo mkdir -/var/www/reports/
sudo groupadd project 
سپس یک user موجود روی سیستم را که میخواهیم دسترسی write روی دایرکتوری /var/www/reports/ بدهیم به گروه projects همانند زیر اضافه میکنیم.
کد PHP:
sudo usermod --G project tecmint 
کد PHP:
mohammad@linux-zone:~$ sudo mkdir -/var/www/reports/
mohammad@linux-zone:~$
mohammad@linux-zone:~$sudo groupadd project
mohammad
@linux-zone:~$
mohammad@linux-zone:~$sudo usermod --G project linuxzone
mohammad
@linux-zone:~$
mohammad@linux-zone:~$ 
گزینه ها و کاراکترهای مورد استفاده در دستور بالا :
-a : این گزینه یوزر را به گروه مورد نظر اضافه میکند.
-G : با استفاده از آن نام گروه را مشخص میکنیم.
project : نام گروه
tecmint : یوزر موجود

بعد از آن اقدام به تنظیم پرمیژن های مناسب روی دایرکتوری مینماییم. آپشن -R عملیات را به صورت recursive روی تمام زیر دایرکتوری ها اعمال میکند.
کد PHP:
sudo chgrp -R project /var/www/reports/
sudo chmod -R 2775 /var/www/reports

توضیح پرمیژن 2775 در دستور chmod بالا :
2 : بیت setGID را فعال میکند، زیر فایل هایی که اخیرا ایجاد شده اند گروه یکسان را همانند دایرکتوریشان به ارث میبرند. و زیر پوشه هایی که اخیرا ایجاد شده اند بیت setGID را از دایرکتوری parent خود به ارث میبرند.
7 : پرمیژن rwx را به owner میدهد.
7 : پرمیژن rwx را به group میدهد.
5 : پرمیژن rx را به others میدهد.


شما میتوانید یوزرهای بیشتری در سیستم ایجاد کنید و آنها را به گروه دایرکتوری مورد نظر همانند زیر اضافه کنید.
کد PHP:
sudo useradd --"Aaron Kili" -s/bin/bash -G project aaronkilik
sudo useradd --"John Doo" -s/bin/bash -G project john
sudo useradd --"Ravi Saive" -s/bin/bash -G project ravi 
سپس زیر دایرکتوری هایی را برای کاربران جدیدی که با دستورات بالا درست کردید (برای ذخیره گزارش های پروژه شان) ایجاد کنید.
کد PHP:
sudo mkdir -/var/www/reports/aaronkilik_reports
sudo mkdir -/var/www/reports/johndoo_reports
sudo mkdir -/var/www/reports/ravi_reports 
اکنون شما میتوانید فایل یا پوشه ایجاد کنید و با یوزرهای دیگر در همان گروه به اشتراک بگذارید.


در این پست ما نحوه فعال کردن دسترسی write برای تمامی یوزرها را در یک دایرکتوری خاص توضیح دادیم. برای کسب اطلاعات بیشتر درباره user ها و گروه ها در لینوکس به شما پیشنهاد میکنم پست زیر را مطالعه بفرمایید.