Как правильно настроить права доступа (chmod) к файлам и папкам WordPress: полное руководство для безопасности и работы
Введение: почему права доступа — это вопрос безопасности, а не только работы
Ошибка «Недостаточно прав для записи файла» или, наоборот, уведомления о слишком открытых доступах знакомы многим владельцам WordPress-сайтов. Неправильные настройки прав доступа — одна из главных причин взломов сайтов. В этой статье разберем, как настроить chmod правильно, балансируя между безопасностью и функциональностью.
1. Основы: что означают цифры в chmod
1.1 Система прав доступа
- 4 = чтение (r)
- 2 = запись (w)
- 1 = выполнение (x)
1.2 Комбинации:
- 755 = владелец: rwx (7), группа: r-x (5), остальные: r-x (5)
- 644 = владелец: rw- (6), группа: r— (4), остальные: r— (4)
- 750 = владелец: rwx (7), группа: r-x (5), остальные: — (0)
1.3 Кто есть кто:
- Владелец (User) — пользователь сервера, под которым работают PHP-процессы
- Группа (Group) — группа пользователей сервера
- Остальные (World) — все остальные, включая посетителей сайта
2. Рекомендуемые права доступа для WordPress
2.1 Файлы
# Все PHP, HTML, CSS, JS файлы: chmod 644 # wp-config.php (особый случай): chmod 640 или 644
2.2 Папки (директории)
# Большинство папок: chmod 755 # Папка загрузок (wp-content/uploads): chmod 755, но файлы внутри — 644
2.3 Критически важные элементы
wp-config.php → 640 (или 444 после настройки) .htaccess → 644 wp-content/ → 755 wp-content/uploads/ → 755 wp-admin/ → 755 wp-includes/ → 755
3. Пошаговая настройка прав доступа
Шаг 1: Проверка текущих прав
Через SSH (если есть доступ):
# Просмотр прав для всех файлов ls -la # Просмотр прав конкретной папки ls -la /путь/к/вашему/сайту/
Через FTP-клиент (FileZilla, WinSCP):
- Правая кнопка мыши на файле/папке → «Права доступа к файлу»
Шаг 2: Массовая установка правильных прав
Через SSH из корня сайта:
# Устанавливаем правильные права для всех папок find /путь/к/сайту -type d -exec chmod 755 {} \; # Устанавливаем правильные права для всех файлов find /путь/к/сайту -type f -exec chmod 644 {} \;
Шаг 3: Особые случаи (вручную)
# wp-config.php делаем более защищенным chmod 640 /путь/к/сайту/wp-config.php # Папке загрузок даем права на запись chmod 755 /путь/к/сайту/wp-content/uploads/ # Плагинам и темам даем возможность обновляться chmod 755 /путь/к/сайту/wp-content/plugins/ chmod 755 /путь/к/сайту/wp-content/themes/
Шаг 4: Проверка через плагины WordPress
Для пользователей без доступа к SSH/FTP:
- iThemes Security → Настройки → Файловая система
- Wordfence Security → Сканирование → Диагностика
- Sucuri Security → Интегрированный аудит
4. Типичные проблемы и их решения
Проблема 1: «Для установки плагина требуются учетные данные FTP»
Причина: Веб-сервер (www-data, apache, nginx) не является владельцем файлов WordPress.
Решение:
# Меняем владельца файлов (пример для Ubuntu/Debian) sudo chown -R www-data:www-data /путь/к/сайту/
Проблема 2: Ошибка безопасности в сканерах
Причина: Критическим файлам установлены права 777.
Решение:
# Находим все файлы с правами 777 find /путь/к/сайту -type f -perm 777 # Меняем на 644 find /путь/к/сайту -type f -perm 777 -exec chmod 644 {} \;
Проблема 3: Не загружаются изображения
Причина: Папке uploads недостаточно прав.
Решение:
# Даем права на запись chmod 755 /путь/к/сайту/wp-content/uploads/ # Для вложенных папок тоже find /путь/к/сайту/wp-content/uploads/ -type d -exec chmod 755 {} \;
5. Автоматизация и плагины для управления правами
5.1 Плагины для автоматической настройки:
- iThemes Security — автоматическое исправление прав доступа
- All-In-One Security (AIOS) — сканер разрешений файлов
- Wordfence Security — мониторинг изменений прав
5.2 Сценарий для автоматической проверки (сохранить как check_permissions.sh):
#!/bin/bash echo "Проверка прав доступа WordPress..." echo "================================" # Критические файлы echo "wp-config.php:" ls -la wp-config.php | awk '{print $1, $9}' echo "htaccess:" ls -la .htaccess 2>/dev/null | awk '{print $1, $9}' echo "Папки:" ls -la | grep '^d' | awk '{print $1, $9}' echo "Рекомендации по исправлению:" echo "1. Файлы: find . -type f -exec chmod 644 {} \;" echo "2. Папки: find . -type d -exec chmod 755 {} \;"
6. Особенности для разных хостингов
6.1 Shared-хостинг (общий):
- Часто требуются права 755 для папок и 644 для файлов
- wp-config.php может требовать 600 или 640
- Обратитесь в техподдержку хостинга за рекомендациями
6.2 VPS/VDS (свои серверы):
- Можно настроить оптимальные права под свои нужды
- Рекомендуется использовать отдельного пользователя для WordPress
- Настройте правильного владельца файлов (chown)
6.3 Managed WordPress-хостинг:
- Права часто уже настроены оптимально
- Изменение прав может нарушить работу хостинга
- Консультируйтесь с поддержкой перед изменениями
7. Безопасность: что никогда нельзя делать
❌ Никогда не устанавливайте:
- 777 для любых файлов или папок
- 777 для wp-config.php (это открытый доступ для всех)
- 777 для папки uploads (используйте 755)
✅ Лучшие практики безопасности:
- Регулярно проверяйте права доступа
- Используйте плагины безопасности для мониторинга
- Делайте бэкап перед массовым изменением прав
- Документируйте внесенные изменения
8. Часто задаваемые вопросы
Вопрос: Почему после обновления WordPress права сбрасываются?
Ответ: Некоторые обновления могут менять владельца файлов. Используйте фиксированные скрипты для восстановления.
Вопрос: Как защитить wp-config.php максимально?
Ответ:
chmod 400 wp-config.php # Только чтение для владельца # Или перенесите его на уровень выше корня сайта (требует настройки)
Вопрос: Что делать, если плагины просят права 777?
Ответ: Ищите альтернативу плагину. Качественные плагины работают с правами 755/644.
Заключение
Правильная настройка прав доступа — это баланс между безопасностью и функциональностью. Начинайте с минимально необходимых прав (644 для файлов, 755 для папок) и повышайте их только при возникновении конкретных ошибок. Регулярный аудит прав доступа должен стать частью вашей рутины по обслуживанию WordPress-сайта.
Главное правило: Если не уверены в необходимости прав — ставьте меньше. Лучше потом добавить, чем дать хакерам возможность для атаки.
Примечание: Данные рекомендации являются общими. Для конкретных хостингов и конфигураций сервера могут потребоваться индивидуальные настройки. Всегда делайте полный бэкап сайта перед изменением прав доступа к файлам.