لكل «رُفض الإذن» جوابٌ صحيح وجوابٌ خطير. الخطير هو 777، وهو يعمل دائمًا، ومعناه أن أي عمليّة على الخادم تقدر على إعادة كتابة شفرتك.
ما هي الأرقام الثلاثة
المالك، والمجموعة، وكل من عداهما. القراءة 4، والكتابة 2، والتنفيذ 1، وتُجمَع: فالستّة قراءةٌ وكتابة، والسبعة الثلاثة كلّها.
- 644 على ملفّ — المالك يكتب والجميع يقرأ.
- 755 على مجلّد — المالك يكتب، والجميع يقدر على الدخول والسرد.
- 600 على سِرٍّ — المالك، ولا أحد غيره إطلاقًا.
ما يحتاجه الموقع
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
المجلّدات تحتاج بتّ التنفيذ كي تُدخَل؛ أمّا الملفّات فلا تحتاجه إطلاقًا. وملفّ PHP بصلاحية 755 ليس أقدر على العمل — فخادم الويب يقرؤه ولا ينفّذه بوصفه برنامجًا.
والملكيّة هي الجزء الخاطئ عادةً
الخطأ غالبًا ليس في الصلاحيات بل في المالك. فإن كان PHP يعمل بمستخدم والملفّات لمستخدم آخر، فلن تنفع صلاحيةٌ دون 777 — والإصلاح الصحيح هو المالك.
ps aux | grep php-fpm | head -2
chown -R youruser:youruser /path/to/site
و777 على مجلّد رفعٍ مع خادم يُشغّل PHP هناك هو الطريق الذي تُسرَق به المواقع: يرفع أحدهم ملفًّا ثم يطلب من الخادم تشغيله. ومجلّدات الرفع لا يجوز أن تنفّذ أبدًا.
امنع الرفع من التنفيذ
location ~* /uploads/.*\.php$ {
deny all;
}
وإن أصرّت إضافةٌ على 777 كي تعمل، فتلك حقيقةٌ عن الإضافة. أعطها 775 بالمجموعة الصحيحة وناقش الأمر مع مؤلّفها.