از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
chmod 777 به چه معناست
سرفصلهای مطلب
شما در حال تلاش برای رفع مشکل مجوز با سرور وب خود هستید و اطلاعاتی را در اینترنت پیدا کرده اید که می گوید باید chmod 777 را به صورت بازگشتی در فهرست وب اجرا کنید. قبل از انجام این کار، مطمئن شوید که چه چیزی را درک کرده اید chmod -R 777
انجام می دهد و چرا هرگز نباید مجوزها را روی 777 تنظیم کنید.
این مقاله مدل مجوزهای لینوکس و معنای شماره مجوزها را توضیح می دهد.
آشنایی با مجوزهای فایل لینوکس
در لینوکس، دسترسی به فایل ها توسط سیستم عامل با استفاده از مجوزها، ویژگی ها و مالکیت فایل کنترل می شود. درک مدل مجوزهای سیستم فایل لینوکس به شما امکان می دهد دسترسی به فایل ها و دایرکتوری ها را فقط برای کاربران و فرآیندهای مجاز محدود کنید و سیستم شما را ایمن تر می کند.
هر فایل متعلق به یک کاربر خاص و یک گروه است و با حقوق دسترسی به سه دسته مختلف از کاربران اختصاص داده شده است:
- صاحب فایل
- اعضای گروه.
- دیگران (همه دیگران).
سه نوع مجوز فایل برای هر کلاس کاربر اعمال می شود و به شما امکان می دهد مشخص کنید که کدام کاربران مجاز به خواندن، نوشتن یا اجرای فایل هستند. همان ویژگی های مجوز برای فایل ها و دایرکتوری ها با معنای متفاوت اعمال می شود:
- مجوز خواندن
- فایل قابل خواندن است. به عنوان مثال، هنگامی که مجوز خواندن تنظیم شده است، کاربر می تواند فایل را در یک ویرایشگر متن باز کند یا محتوای فایل را در terminal.
- محتوای دایرکتوری قابل مشاهده است. کاربر می تواند فایل های داخل دایرکتوری را با لیست لیست کند
ls
فرمان
- مجوز نوشتن
- فایل را می توان تغییر داد یا تغییر داد.
- محتوای دایرکتوری قابل تغییر است. کاربر می تواند فایل های جدید ایجاد کند، فایل های موجود را حذف کند، فایل ها را جابجا کند، نام فایل ها را تغییر دهد و غیره.
- مجوز اجرا
- فایل قابل اجرا است. کاربر می تواند فایل (اسکریپت) را از خط فرمان اجرا کند
- دایرکتوری را می توان با استفاده از
cd
فرمان
مجوزهای فایل را می توان با استفاده از ls
فرمان به عنوان مثال:
ls -l filename.txt
-rw-r--r-- 12 rasanegar 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
، یک پیوند نمادین (l
) یا هر نوع فایل خاص دیگری.
9 کاراکتر زیر نشان دهنده مجوزهای فایل است که به سه سه گانه از سه کاراکتر تقسیم شده است. سه گانه اول مجوزهای مالک را نشان می دهد، مجوزهای گروه دوم و آخرین مورد مجوزها را برای بقیه نشان می دهد.
شماره مجوز
مجوزهای فایل را می توان در قالب عددی یا نمادین نشان داد. در این مقاله به فرمت عددی می پردازیم.
شماره مجوز ممکن است شامل سه یا چهار رقم باشد که از 0 تا 7 متغیر است.
هنگام استفاده از یک عدد 3 رقمی برای نشان دادن مجوزهای فایل، رقم اول مربوط به مجوزهای مالک، رقم دوم به مجوزهای گروه و رقم سوم مربوط به مجوزهای دیگران است.
مجوزهای نوشتن، خواندن و اجرا دارای مقدار عدد زیر هستند:
r
(بخوانید) = 4w
(نوشتن) = 2x
(اجرا) = 1- بدون مجوز = 0
رقم مجوزهای یک کلاس کاربری خاص، مجموع مقادیر مجوزهای آن کلاس است.
هر رقم از شماره مجوزها ممکن است مجموع 4، 2، 1 و 0 باشد:
- 0 (0+0+0) – بدون اجازه.
- 1 (0+0+1) – فقط مجوز را اجرا کنید.
- 2 (0+2+0) – فقط اجازه نوشتن.
- 3 (0+2+1) – مجوزهای نوشتن و اجرا.
- 4 (4+0+0) – فقط مجوز خواندن.
- 5 (4+0+1) – مجوز خواندن و اجرای آن.
- 6 (4+2+0) – مجوزهای خواندن و نوشتن.
- 7 (4+2+1) – خواندن، نوشتن و اجرای مجوز.
به عنوان مثال، اگر شماره مجوز روی 750 تنظیم شود، به این معنی است که مالک فایل مجوزهای خواندن، نوشتن و اجرا را دارد. گروه فایل دارای مجوزهای خواندن و اجرای است، در حالی که سایر کاربران هیچ مجوزی ندارند:
- مالک: rwx=4+2+1=7
- گروه: rx=4+0+1=5
- سایر موارد: rx=0+0+0=0
هنگامی که از یک عدد 4 رقمی استفاده می شود، رقم اول به معنای زیر است:
- setuid = 4
- setgid = 2
- چسبنده = 1
- بدون تغییر = 0
سه رقم بعدی همان معنی را دارند که از عدد 3 رقمی استفاده می کنیم. اگر رقم اول 0 باشد می توان آن را حذف کرد و حالت را می توان با 3 رقم نشان داد. به عنوان مثال، حالت عددی 0755
مثل این هست که 755
.
برای مشاهده مجوزهای فایل در نماد عددی (اکتال)، می توانید از stat
دستور:
stat -c "%a" filename
644
هرگز از chmod 777 استفاده نکنید
تنظیم 777 مجوز (chmod 777
) به یک فایل یا دایرکتوری به این معنی است که برای همه کاربران قابل خواندن، نوشتن و اجرا خواهد بود و ممکن است یک خطر امنیتی بزرگ ایجاد کند.
به عنوان مثال، اگر به صورت بازگشتی مجوزهای همه فایلها و زیر شاخههای زیر را تغییر دهید /var/www
دایرکتوری به 777
، هر کاربر در سیستم می تواند فایل هایی را در آن دایرکتوری ایجاد، حذف یا تغییر دهد.
اگر با مشکل مجوز با سرور وب خود مواجه شدید، به جای تنظیم مجدد مجوز به 777
، مالکیت فایل را به کاربری که برنامه را اجرا می کند تغییر دهید و مجوزهای فایل را روی آن تنظیم کنید 644
و مجوزهای دایرکتوری به 755
.
مالکیت فایل را می توان با استفاده از chown
فرمان و مجوزها با chmod
فرمان
فرض کنید یک برنامه PHP روی سرور خود دارید که به عنوان کاربر اجرا می شود.rasanegar”. برای تنظیم مجوزهای صحیح، موارد زیر را اجرا کنید:
chown -R rasanegar: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
فقط ریشه، مالک فایل یا کاربری با امتیازات sudo میتواند مجوزهای یک فایل را تغییر دهد. هنگام استفاده بیشتر مراقب باشید chmod
، به ویژه هنگامی که به طور بازگشتی مجوزها را تغییر می دهید.
نتیجه
اگر شما یک سیستم لینوکس را مدیریت می کنید، بسیار مهم است که بدانید مجوزهای لینوکس چگونه کار می کنند.
شما هرگز نباید 777 (rwxrwxrwx
) مجوزهای فایل ها و دایرکتوری ها. 777 به این معنی است که هر کسی می تواند با آن فایل ها هر کاری انجام دهد.
در صورت داشتن هر گونه سوال در کامنت بگذارید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 01:19:02