مقدمة في نظام ملفات لينكس (Linux File System)
بعكس أنظمة ويندوز التي تستخدم الأقراص (C:\, D:\)، فإن نظام لينكس يستخدم شجرة هرمية موحدة تبدأ من الجذر / (Root). هذا التصميم يجعل إدارة الملفات والخوادم أكثر أماناً وتنظيماً.
أهم المجلدات في الجذر (Root Directory)
/binو/sbin: تحتوي على الأوامر الأساسية للنظام وللمدير (مثل ls, cp, iptables)./etc: هنا توجد جميع ملفات الإعدادات والـ Configuration (مثل إعدادات Nginx, PHP, SSH)./var: ملفات متغيرة باستمرار، وأهمها/var/www/حيث يتم وضع ملفات مواقع الويب، و/var/log/لسجلات الأخطاء./home: يحتوي على مجلدات المستخدمين العاديين، باستثناء مستخدم Root الذي يملك مجلده الخاص/root.
فهم الصلاحيات (File Permissions)
في لينكس، لكل ملف ومجلد 3 أنواع من الصلاحيات و3 فئات من الأشخاص:
- القراءة (Read - r): قيمتها 4.
- الكتابة (Write - w): قيمتها 2.
- التنفيذ (Execute - x): قيمتها 1.
الفئات هي:
- المالك (Owner): الشخص الذي أنشأ الملف.
- المجموعة (Group): مجموعة المستخدمين الذين لهم صلة بالملف.
- الآخرون (Others): أي شخص آخر على السيرفر (مثل زوار الموقع).
تغيير الصلاحيات باستخدام chmod
لتغيير الصلاحيات، نستخدم الأمر chmod متبوعاً بأرقام تمثل مجموع الصلاحيات.
# إعطاء المالك صلاحية كاملة (7)، المجموعة قراءة وتنفيذ (5)، والآخرين قراءة وتنفيذ (5)
chmod 755 /var/www/my-laravel-app/public
# حماية ملف حساس بحيث يقرأه المالك فقط (6)، ولا أحد آخر (0)
chmod 600 /var/www/my-laravel-app/.env
ملاحظة هامة للمطورين: إعطاء صلاحية
777لأي ملف هو كارثة أمنية، حيث يسمح لأي شخص بالدخول وتعديل أو رفع ملفات خبيثة.
نقل الملكية باستخدام chown
إذا قمت برفع ملفات موقعك باستخدام المستخدم root، فإن سيرفر الويب (Nginx/Apache) الذي يعمل غالباً بمستخدم www-data لن يتمكن من قراءة الملفات أو التعديل عليها، وهنا يبرز دور chown.
# تغيير مالك المجلد وجميع محتوياته (-R) ليكون www-data
sudo chown -R www-data:www-data /var/www/my-laravel-app/
هذا يضمن أن سيرفر الويب يستطيع الكتابة في مجلدات مثل storage و bootstrap/cache في لارافيل دون أخطاء 500 Internal Server Error.
💬 التعليقات
0 تعليقات