2026年11月12日
2026年11月12日
أذونات ملفات WordPress الموصى بها: 755 للمجلدات و644 للملفات
هذه المقالة نسخة مُوطَّنة من الأصل الياباني. اقرأ الأصل الياباني
الأساس في أذونات ملفات WordPress أن تكون 755 للمجلدات و644 للملفات. أما wp-config.php الذي يحتوي على بيانات الاتصال بقاعدة البيانات فيُقيَّد من يستطيع قراءته أكثر. وإلى جانب الأرقام، تحقق من مالك الملف ومن المستخدم الذي تعمل به PHP، فبذلك تتجنب تسرّب المعلومات ومشكلة «تعذّر التحديث» معًا. القيم الموصى بها في هذه المقالة مأخوذة من مراجعة صفحة WordPress الرسمية «تقوية أمان WordPress (Hardening WordPress)» في نوفمبر 2026.
كيف تُقرأ أرقام الأذونات
تتكون الأذونات من ثلاث مجموعات: «المالك والمجموعة والآخرون»، وتُمثَّل بمجموع القراءة (4) والكتابة (2) والتنفيذ (1).
| القيمة | الصيغة | المعنى |
|---|---|---|
| 755 | rwxr-xr-x | للمالك القراءة والكتابة والدخول إلى المجلد، ولغيره القراءة والدخول فقط (للمجلدات) |
| 644 | rw-r--r-- | للمالك القراءة والكتابة، ولغيره القراءة فقط (للملفات) |
| 640 | rw-r----- | للمالك القراءة والكتابة، وللمجموعة القراءة، وليس للآخرين أي إذن |
| 600 | rw------- | المالك وحده يقرأ ويكتب |
| 440 / 400 | r--r----- / r-------- | لا يستطيع أحد الكتابة، والقراءة للمالك (والمجموعة) فقط |
«التنفيذ (x)» للمجلد هو إذن الدخول إلى ذلك المجلد. وإذا أزلت x من مجلد فلن تتمكن من قراءة الملفات داخله.
القيم الموصى بها في WordPress
| الهدف | القيمة الموصى بها | ملاحظة |
|---|---|---|
| المجلدات | 755 (و750 في الاستضافة المشتركة إذا لم تُرد أن يراها الآخرون) | حتى في التحديث التلقائي الرسمي تُوحَّد المجلدات على 755 |
| الملفات | 644 (و640 في الحالة نفسها) | حتى في التحديث التلقائي الرسمي تُوحَّد الملفات على 644 |
| wp-config.php | قصر القراءة عليك وعلى خادم الويب فقط | الشرح الرسمي «بوجه عام 400 أو 440». وإذا كانت PHP تعمل بالمستخدم نفسه الذي يملك الملف فيعمل 600 أو 400 أيضًا |
| .htaccess | 644 | إذا تركت WordPress يعيد كتابته عند حفظ إعدادات الروابط الدائمة فيجب أن يكون مستخدم تشغيل PHP قادرًا على الكتابة فيه |
| wp-content/uploads | المجلدات 755 والملفات 644 | اجعل المالك مستخدمًا تستطيع PHP الكتابة بصلاحياته |
لا حاجة إلى 777 (يستطيع الجميع الكتابة). ففي الخادم المشترك قد يعدّل ملفاتك مستخدم آخر على الخادم نفسه.
بعض شركات الاستضافة المؤجَّرة (الخوادم المستأجرة) تحدد قيمها الموصى بها بنفسها، لأن طريقة تشغيل PHP تختلف من خادم إلى آخر. فإذا ذُكرت القيم في دليل الخادم الذي تتعاقد معه فقدّمها على غيرها.
كيف نفهم المالك
وفق الشرح الرسمي، يكون الحساب الخاص بك هو مالك الملفات وأنت من يستطيع الكتابة فيها. أما الملفات التي يحتاج WordPress إلى الكتابة فيها (مثل uploads، وقوالب محرر القوالب إن استخدمته) فقط، فتُطابَق فيها الملكية أو المجموعة بحيث يستطيع مستخدم تشغيل خادم الويب (PHP) الكتابة.
إذا جعلت كل شيء ملكًا لمستخدم خادم الويب مثل chown -R www-data:www-data فإن PHP تصبح قادرة على تعديل كل الملفات. وهذا يوسّع الضرر عند استغلال ثغرة في إضافة، لذا تحقق من الوضع الحالي أولًا ثم قرّر.
طلب «بيانات الاتصال (اسم مضيف FTP واسم المستخدم وكلمة المرور)» عند تحديث إضافة أو النواة سببه غالبًا عدم تطابق المالك هذا. يختار WordPress طريقة التعديل المباشر للملفات فقط إذا كان مالك الملف الذي أنشأته PHP هو نفسه مالك ملفات WordPress، وإلا طلب التحديث عبر FTP. صحّح الأمر بمطابقة المالك لا بتوسيع الأذونات إلى 777.
فحص الإعدادات الحالية
ادخل إلى مجلد WordPress عبر SSH وتحقق من القيم والمالك بالأوامر التالية. غيّر المسار بما يناسب بيئتك.
cd /var/www/html
# قيمة wp-config.php ومالكه ومجموعته
stat -c '%a %U:%G %n' wp-config.php
# البحث عن الملفات والمجلدات التي يستطيع المستخدمون الآخرون الكتابة فيها
find . -perm -o=w ! -type l
# البحث عن ملفات PHP داخل uploads (لا توجد عادةً)
find wp-content/uploads -type f -name '*.php'
مستخدم تشغيل PHP عند الوصول من الويب تحقق منه في إعدادات الخادم (مثل user في مجمّع PHP-FPM) أو في دليل الاستضافة. وقد لا يكون هو المستخدم نفسه الذي تسجّل به الدخول عبر SSH.
إذا وجدت في uploads ملف PHP لا تعرفه فاشتبه في عبث، وسجّل تاريخ الملف ومحتواه قبل أن تحذفه.
تصحيح الأذونات دفعة واحدة
نفّذ الأوامر في مجلد WordPress. وخذ نسخة احتياطية قبل التنفيذ.
cd /var/www/html
# توحيد المجلدات على 755 والملفات على 644
find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +
# تقييد wp-config.php (مثال لبيئة تعمل فيها PHP بمالك الملف)
chmod 600 wp-config.php
اختر قيمة wp-config.php بحسب بيئتك على النحو التالي.
- PHP تعمل بالمستخدم نفسه الذي يملك الملف (معظم الاستضافات المشتركة، ومجمّع PHP-FPM لكل مستخدم): 600 أو 400
- المالك هو حسابك، وخادم الويب يقرأ بصفته مجموعة: اجعلها 640 أو 440 واضبط المجموعة على مجموعة خادم الويب
# مثال: المالك أنت، والمجموعة هي مجموعة خادم الويب (www-data)، والقيمة 640
sudo chgrp www-data wp-config.php
chmod 640 wp-config.php
بعد الإعداد افتح الموقع ولوحة التحكم وتأكد من ظهورهما ومن إمكان تسجيل الدخول. وإذا ظهرت شاشة بيضاء أو خطأ فهذا يعني أن PHP لا تستطيع قراءة wp-config.php. أعد القيمة إلى 644 ثم راجع المالك والمجموعة.
عند 400 أو 440 تفشل الإضافات التي تكتب في wp-config.php (مثل ما يكتب إعدادات الكاش). اسمح بالكتابة مؤقتًا فقط عند ضبط مثل هذه الإضافات.
منع قراءة wp-config.php من الويب
إذا كانت PHP تعمل بشكل سليم فلن يُعرض محتوى wp-config.php عند طلبه في المتصفح. ولمنع ظهور الشيفرة المصدرية عند توقف PHP مثلًا، ارفض الوصول إليه من جهة خادم الويب أيضًا. في Apache 2.4 اكتب ما يلي في .htaccess في المجلد الذي يوجد فيه WordPress (الصيغة القديمة Order Deny,Allow / Deny from all هي صيغة Apache 2.2).
<Files "wp-config.php">
Require all denied
</Files>
الخطوات التفصيلية في «إعداد رفض الوصول إلى wp-config.php».
أما ملف .htaccess نفسه فالوصول إليه مرفوض أصلًا بالإعداد القياسي لـ Apache (<Files ".ht*"> في httpd.conf).
وفق الشرح الرسمي يمكن أيضًا نقل wp-config.php إلى مجلد أعلى بمستوى واحد من مجلد WordPress. فإذا لم يجد WordPress ملف wp-config.php في المجلد نفسه بحث في المجلد الأعلى. لكن الموقع الرسمي يشير أيضًا إلى رأي بأن الفائدة ضئيلة، وإلى أن الخطأ في الطريقة قد يجعل الأمر أخطر. وإذا نقلته فتأكد من أن المجلد الأعلى ليس مجلدًا عامًا.
منع تنفيذ PHP في uploads
uploads مجلد يكتب فيه WordPress، لذا هو موضع يسهل على المهاجمين وضع ملفات فيه. وإذا منعت تنفيذ PHP هنا فلن تعمل الملفات الموضوعة فيه.
في Apache 2.4 أنشئ wp-content/uploads/.htaccess واكتب فيه ما يلي.
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
لاستخدام Require في .htaccess يجب أن يكون AllowOverride في الخادم يسمح بذلك. وإلا ظهر خطأ 500 أو تُجوهل الإعداد. بعد الكتابة افتح رابط PHP غير موجود مثل https://example.com/wp-content/uploads/test.php وتأكد من ظهور 403 (فإذا ظهر 404 فالإعداد لا يعمل).
في Nginx، ضع ما يلي داخل كتلة server قبل location ~ \.php$ الذي يعالج PHP. فمواضع location بالتعبيرات النمطية تُطابَق من الأعلى إلى الأسفل ويُستخدم أولها مطابقة.
location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ {
deny all;
}
بعد تغيير الإعداد تحقق من الصياغة بـ nginx -t ثم أعد التحميل.
ولاحظ أن رفع الوسائط في WordPress لا يقبل افتراضيًا غير الأنواع المسموح بها (الصور وPDF ونحوها). فلا يمكن عادةً رفع ملف PHP بصفته وسائط من لوحة التحكم.
نقاط يجب الانتباه إليها
- خذ نسخة احتياطية من الملفات وقاعدة البيانات قبل تغيير الأذونات.
- عند تغيير الأذونات ببرنامج FTP قد لا يدعم بعض الخوادم التغيير الجماعي. وعند كثرة الملفات يكون
findعبر SSH أسرع وأقل عرضة لنسيان ملفات. - إذا طُلبت بيانات اتصال FTP عند التحديث فتحقق من المالك ولا توسّع الأذونات. وراجع أيضًا «إصلاح أخطاء أذونات WordPress».
- نفّذ أوامر التحقق أعلاه دوريًا (الملفات التي يستطيع الآخرون الكتابة فيها، وملفات PHP داخل uploads) لتكتشف مبكرًا اضطراب الإعداد أو العبث.
لديك أسئلة حول WordPress؟ ناشر هذا الموقع موجود في اليابان ويرد باللغة اليابانية. تواصل معنا (باليابانية)