نکات کلیدی
- 01سه رقم مجوزها را برای مالک، گروه، و سایرین تنظیم میکند، به ترتیب.
- 02هر رقم مجموع read (4)، write (2)، و execute (1) است — بنابراین 7 = هر سه، 5 = read + execute.
- 03755 استاندارد برای پوشهها و برنامهها است؛ 644 استاندارد برای فایلهای معمولی است؛ 777 تقریباً همیشه یک اشتباه است.
سه رقم، سه مخاطب
در لینوکس و macOS، هر فایل و پوشه مجوزهایی برای سه گروه جداگانه از افراد حمل میکند. از چپ به راست، سه رقم در حالتی مانند 755 بر: مالک (کاربری که فایل را مالک است)، گروه (مجموعهای از کاربران که دسترسی مشترک دارند)، و سایرین (واقعاً همه در سیستم) اعمال میشود. ترتیب هرگز تغییر نمیکند — مالک، گروه، سایرین.
بنابراین 755 میگوید: به مالک مجوز توضیحدادهشده توسط 7 بدهید، به گروه مجوز توضیحدادهشده توسط 5 بدهید، و به سایر افراد مجوز توضیحدادهشده توسط 5 بدهید. برای درک کل چیز، فقط باید بدانید یک رقم به چه معنی است. سپس همین قانون را سه بار میخوانید.
نحوهٔ ساخت هر رقم: 4، 2، 1
هر رقم مجموع تا سه مقدار است. دسترسی read برابر 4، دسترسی write برابر 2، و دسترسی execute برابر 1 است. مجوزهایی را که میخواهید جمع کنید و یک رقم از 0 تا 7 میگیرید. چون 4، 2، و 1 توانهای دو هستند، هر ترکیبی مجموع منحصربهفردی تولید میکند — هرگز ابهامی وجود ندارد.
رقم 7 را مرور کنید: 4 (read) + 2 (write) + 1 (execute) = 7، بنابراین 7 همه چیز را دارد. رقم 5 برابر 4 (read) + 1 (execute) = 5 است، که read و execute را دارد اما write را نه. رقم 6 برابر 4 + 2 = 6 است: read و write، اما execute نه. رقم 4 فقط read است. رقم 0 هیچ چیزی را دارا نیست.
بهکاربرده شدهٔ 755، این فرازنمایی میشود: مالک 7 میگیرد (read، write، execute — کنترل کامل)، در حالیکه گروه و سایرین هر کدام 5 میگیرند (read و execute، اما توانایی تغییر فایل نه). این دقیقاً آنچه برای برنامهای یا پوشهای که دیگران باید بتوانند استفاده کنند اما نه تغییر میدهند میخواهید.
حالتهای مجوزی که واقعاً استفاده میکنید
تقریباً تمام کار روزمرهٔ دریافت به چند حالت محدود کنید. در اینجا معنی هر یک است و زمان استفاده از آن.
- 01755 = rwxr-xr-x — مالک میتواند بخواند، بنویسد، و اجرا کند؛ سایرین میتوانند بخوانند و اجرا کنند. پیشفرض برای پوشهها، اسکریپتها، و اجراییهای قابلاجرا.
- 02644 = rw-r--r-- — مالک میتواند بخواند و بنویسد؛ سایرین فقط میتوانند بخوانند. پیشفرض برای فایلهای معمولی مانند HTML، متن، و تصویر.
- 03700 = rwx------ — مالک کنترل کامل دارد؛ هیچ کس دیگر نمیتواند نگاه کند. برای پوشههای خصوصی و اسکریپتهای شخصی استفاده کنید.
- 04600 = rw------- — مالک میتواند بخواند و بنویسد؛ سایرین قفل شدند. برای کلیدهای خصوصی و فایلهای پیکربندی با اسرار ایدهآل.
- 05775 = rwxrwxr-x — مالک و گروه میتوانند بنویسند؛ سایرین میتوانند بخوانند و اجرا کنند. رایج برای دایرکتوریهای پروژهٔ مشترک.
- 06777 = rwxrwxrwx — همه میتوانند همه چیز انجام دهند. یک پرچمٔ قرمز امنیتی؛ تقریباً هرگز پاسخ درست نیست.
نحوهٔ کار کردن مقدار chmod
به جای حفظ octal، دسترسیِ دوستداشتهٔ خود را توصیف کنید و بگذارید ماشین حساب عدد و رشتهٔ rwx را تولید کند.
- 01
ماشین حساب chmod را باز کنید
به ماشین حساب chmod Handytool بروید. این کاملاً در مرورگر شما اجرا میشود.
- 02
جعبهها را بررسی کنید
read، write، یا execute را برای مالک، گروه، و سایرین بر اساس اینکه کی باید بتواند چه کار کند بررسی کنید.
- 03
نتیجه را بخوانید
ابزار حالت عددی (مثل 755) و رشتهٔ نمادین (مثل rwxr-xr-x) را در کنار یکدیگر نشان میدهد، بنابراین میتوانید هر کدام را که دستور شما نیاز دارد کپی کنید.
- 04
دستور را کپی کنید
دستور chmod آمادهایٔ شده را بردارید و آن را در ترمینال خود جای بگذارید تا مجوزها را اعمال کنید.
یک نکتهٔ مهم: execute چیزهای مختلفی را برای فایلها و پوشهها به معنی است
در یک فایل، بیتٔ execute به معنی "این میتواند بهعنوان برنامهای اجرا شود" است. در یک پوشه، execute چیزی متفاوت به معنی است: "شما اجازهٔ ورود به این دایرکتوری و دسترسی به آنچه درونش است را دارید." این دلیلی است که پوشهها معمولاً 755 بهجای 644 دریافت میکنند — بدون بیتٔ execute، میتوانید نام پوشه را فهرست کنید اما نمیتوانید آن را باز کنید یا به فایلهای درون آن دسترسی داشته باشید.
این دلیلی است که پوشهٔ تازهآپلودشدهٔ پر از فایلهای قابلخواندگی هنوز هم میتواند "permission denied" پرتاب کند. فایلها ممکن است 644 باشند و کاملاً قابلخواندهٔ باشند، اما اگر پوشهٔ خود برای گروه یا سایرین بیتٔ execute نداشته باشد، هیچ کسی نمیتواند وارد آن شود. دایرکتوریها را به 755 و محتویات آنها را 644 تنظیم کنید و بسیاری از این معماها ناپدید میشوند.
سوالات متداول chmod
chmod 755 به چه معنی است؟
به مالک مجوز read، write، و execute کامل میدهد (7)، و به گروه و سایرین فقط read و execute میدهد (5 و 5). این استاندارد برای پوشهها، اسکریپتها، و برنامههایی است که دیگران باید بتوانند استفاده کنند اما تغییر ندهند.
تفاوت بین 755 و 644 چیست؟
755 شامل بیتٔ execute است، بنابراین فایل را میتوان اجرا کرد و پوشهها را وارد کرد. 644 هیچ بیتٔ execute ندارد — این read و write برای مالک، تنها read برای سایرین است، که برای فایلهای داده معمولی صحیح است.
آیا chmod 777 ایمن است؟
به ندرت. این به هر کاربر و فرآیند اجازهٔ خواندن، تغییر، و جایگزینی فایل میدهد، که خطری امنیتی برای هر سیستمٔ مشترک است. حالتٔ باریکترینی را ترجیح دهید که مشکل را حل کند، معمولاً 755 یا 644.
چگونه حالتی مانند rwxr-xr-x را بخوانم؟
آن را در سه گروهٔ سه: rwx (مالک) r-x (گروه) r-x (سایرین) بخوانید. حرف به معنی مجوز دادن است، تیرهخط به معنی نه است. rwxr-xr-x فرمٔ نمادینٔ 755 است.