خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


منظور از chmod 777 چیست؟

منظور از chmod 777 چیست؟
مثلا شما درصدد برای رفع مشکل مجوز با وب سرورتان هستید و اطلاعاتی را با جستجو در اینترنت پیدا کرده اید و به این نتیجه رسیده اید که باید به صورت بازگشتی دایرکتوری وب را chmod 777 کنید.

سیستم یکپارچۀ سازمانی راهکار
پیش از انجام اینکار باید مطمئن شوید که درک درستی از chmod -R 777 حاصل کرده اید و می دانید که chmod -R 777 چه کاری در سیستم شما انجام می دهد و چرا هرگز نباید permission ها را روی 777 تنظیم کنید.


در این مقاله قصد داریم مدل اصلی مجوزهای لینوکس و معنای اعداد مربوط به permission ها را توضیح دهیم.

درک مجوزهای لینوکس

در لینوکس، دسترسی به فایل ها توسط سیستم عامل با استفاده از مجوزها، ویژگی ها و مالکیت فایل کنترل می شود. رک مدل مجوزهای سیستم فایل لینوکس به شما این امکان را می دهد که دسترسی به فایل ها و دایرکتوری ها را فقط برای کاربران و فرآیندهای مجاز محدود کنید و امنیت سیستم تان را ارتقا بدهید.
هر فایل متعلق به یک کاربر خاص و یک گروه است و دارای permission دسترسی به سه دسته مختلف از کاربران است:

The file owner.
The group members.
Others (everybody else)

سه نوع file permission وجود دارد که برای هر کلاس کاربری اعمال می شود و به شما امکان می دهد که مشخص کنید چه کاربرانی مجاز به خواندن فایل، نوشتن در فایل یا اجرای فایل هستند. همان ویژگی های permission برای فایل ها و دایرکتوری ها با معنای متفاوت اعمال می شود:

مجوز read:
فایل readable یا قابل خواندن است. به عنوان مثال، هنگامی که مجوز read تنظیم شده، کاربر می تواند فایل را در یک ویرایشگر متن باز کند.
محتویات دایرکتوری قابل مشاهده است. کاربر می تواند فایل های داخل دایرکتوری را با دستور ls لیست کند.

مجوز write:
امکان تغییر فایل وجود دارد و می توان آن را modify کرد.
محتویات دایرکتوری قابل تغییر است. کاربر می تواند فایل های جدید ایجاد کند، فایل های موجود را حذف کند، فایل ها را جابجا یا Move کند، نام فایل ها را تغییر دهد و غیره.


مجوز execute یا اجرا:
کاربر امکان اجرا یا execute کردن فایل را دارد.
کاربر می تواند با دستور cd وارد دایرکتوری شود.


File permission یا مجوزهای فایل را می توانید با استفاده از دستور ls مشاهده کنید. مثلا:

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]- [------] [---]
| | | | | | |
| | | | | | +-----------> 7. Group
| | | | | +-------------------> 6. Owner
| | | | +--------------------------> 5. Alternate Access Method
| | | +----------------------------> 4. Others Permissions
| | +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

کاراکتر اول نوع فایل را نشان می دهد. می تواند یک فایل معمولی (-)، دایرکتوری (d)، یک فایل shortcut یا میانبر(l)، یا هر نوع خاص دیگری از فایل باشد. به هر حال در خصوص مجوزهای فایل و دایرکتوری در لینوکس، پیشنهاد می کنم لینک زیر را بخوانید:


Permission number

File permission یا مجوز فایل را می توان در فرمت عددی یا سمبلیک نشان داد. در این مقاله، ما بر روی فرمت عددی تمرکز خواهیم کرد.
شماره مجوز می تواند شامل سه یا چهار رقم باشد که از 0 تا 7 متغیر است.
وقتی از عدد 3 رقمی استفاده می شود، رقم اول نشان دهنده مجوزهای مالک فایل، رقم دوم گروه فایل و آخرین رقم سایر کاربران است.
مجوزهای write، read و execute دارای مقدار عددی زیر هستند:

r (read) = 4
w (write) = 2
x (execute) = 1
no permissions = 0

رقم مجوزهای یک کلاس کاربری خاص، مجموع مقادیر مجوزهای آن کلاس است. هر رقم از شماره مجوزها ممکن است مجموع 4، 2، 1 و 0 باشد:

0 (0+0+0) - No permission.
1 (0+0+1) - Only execute permission.
2 (0+2+0) - Only write permission.
3 (0+2+1) - Write and execute permissions.
4 (4+0+0) - Only read permission.
5 (4+0+1) - Read and execute permission.
6 (4+2+0) - Read and write permissions.
7 (4+2+1) - Read, write, and execute permission.

به عنوان مثال، اگر شماره مجوز 750 تنظیم شده باشد، به این معنی است که مالک فایل مجوز خواندن، نوشتن و اجرای آن را دارد، گروه فایل مجوزهای خواندن و اجرا را داراست و سایر کاربران هیچ مجوزی ندارند:

Owner: rwx=4+2+1=7
Group: r-x=4+0+1=5
Others: r-x=0+0+0=0

هنگامی که از عدد 4 رقمی استفاده می شود، رقم اول به معنای زیر است:

setuid=4
setgid=2
sticky=1
no changes = 0

برای مشاهده مجوزهای فایل در نمای عددی (اکتال)، از دستور stat استفاده کنید:
stat -c "%a" filename

644

تنظیم مجوزهای 777 برای یک فایل یا دایرکتوری به این معنی است که برای همه کاربران قابل خواندن، قابل نوشتن و اجرا خواهد بود و شاید یک خطر امنیتی بزرگ ایجاد کند. به عنوان مثال، اگر به صورت بازگشتی مجوز همه فایل‌ها و ساب دایرکتوری ها در دایرکتوری var/www را به 777 تغییر دهید، هر کاربر در سیستم می‌تواند فایل‌هایی را در آن دایرکتوری ایجاد، حذف یا تغییر دهد. اگر با مشکل مجوز در وب سرور خود مواجه شدید، به جای اینکه به صورت بازگشتی مجوز را روی 777 تنظیم کنید، مالکیت فایل را به کاربری که برنامه را اجرا می کند تغییر داده و مجوزهای فایل را روی 644 و مجوزهای دایرکتوری را روی 755 تنظیم کنید.
مالکیت فایل را می توان با استفاده از دستور chown و مجوزها با دستور chmod تغییر داد. فرض کنید یک برنامه PHP روی سرور خود دارید که تحت نام کاربری khoshamoz اجرا می شود. برای تنظیم مجوزهای صحیح باید به طریق زیر اقدام کنید:

chown -R khoshamoz: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

فقط کاربر root، مالک فایل، یا کاربری که امتیازات sudo را دارد، می‌تواند مجوزهای یک فایل را تغییر دهد. هنگام استفاده از chmod، به خصوص هنگام تغییر بازگشتی مجوزها، خیلی احتیاط کنید.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز