Инструкции

Права на файлы сайта: какие поставить на VPS

Из-за неверных прав сайт отвечает 403, WordPress не загружает картинки и просит данные FTP, а с правами 777 сайт открыт взлому. В инструкции — как за пять шагов привести права в порядок на VPS с nginx.

Обновлено 10.10.2026≈ 5 мин чтения
Содержание 11

Коротко

ЧтоПраваВладелец
Папки сайта755Ваш пользователь, для WordPress — пользователь PHP
Файлы сайта644Тот же, что у папок
wp-config.php440Пользователь PHP

Эти права советует справка WordPress, они подходят и для сайтов без WordPress. Команды для сервера вводятся после подключения к нему по SSH (как подключиться). В примерах папка сайта — /var/www/example.com: подставьте свою. Путь к ней указан в строке root в файле настроек сайта nginx.

1. Посмотрите права и владельца

ls -l /var/www/example.com

В начале каждой строки — права, в третьей колонке — владелец, в четвёртой — группа. Как это читать, рассказано в справочнике Права на файлы в Linux: rwx, 644 и 755.

  • если у папок права не drwxr-xr-x, а у файлов не -rw-r--r-- — выполните шаг 2;
  • если владелец root или не тот, что в таблице выше, — шаг 3.

2. Поставьте папкам 755, файлам 644

sudo find /var/www/example.com -type d -exec chmod 755 {} +
sudo find /var/www/example.com -type f -exec chmod 644 {} +

Первая команда ставит 755 всем папкам сайта, вторая — 644 всем файлам. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.

Если на сайте есть скрипты, которые нужно запускать, верните им право x: sudo chmod u+x и путь к скрипту.

3. Отдайте файлы нужному владельцу

Сайт из страниц HTML и картинок отдайте своему пользователю — вместо ivan подставьте имя из ответа команды whoami:

sudo chown -R ivan:ivan /var/www/example.com

Для WordPress узнайте, от какого пользователя работает PHP:

ps -eo user,comm | grep php-fpm

Команда покажет несколько строк, в первой колонке — имя пользователя. Строка с root — главный процесс PHP, он только раздаёт работу. Нужно имя из остальных строк: от него PHP читает и пишет файлы сайта, например www-data.

Отдайте ему папку сайта:

sudo chown -R www-data:www-data /var/www/example.com

После этого WordPress сможет сам загружать картинки, ставить плагины и обновляться, не спрашивая данные FTP.

4. Закройте wp-config.php

В wp-config.php лежит пароль от базы данных. Справка WordPress советует права 440 или 400, чтобы его не могли прочитать другие пользователи сервера:

sudo chmod 440 /var/www/example.com/wp-config.php

Откройте сайт в браузере. Если он перестал открываться — например, ответил ошибкой 500, — PHP не может прочитать файл. Проверьте, что владелец wp-config.php — пользователь PHP из шага 3.

Сайту без WordPress этот шаг не нужен.

5. Проверьте результат

sudo stat -c '%a %U:%G %n' /var/www/example.com /var/www/example.com/index.php /var/www/example.com/wp-config.php

Для WordPress ответ должен быть таким:

755 www-data:www-data /var/www/example.com
644 www-data:www-data /var/www/example.com/index.php
440 www-data:www-data /var/www/example.com/wp-config.php

Откройте сайт, войдите в админку WordPress и загрузите картинку в медиатеку. Если загрузилась, права в порядке.

Чего не делать

  • Не ставьте 777 — ни сайту, ни папке загрузок: справка WordPress это запрещает. Если WordPress не может писать в папку, дело во владельце — шаг 3.
  • Не запускайте chmod -R 644 на папку: у папок пропадёт право x, и сайт ответит 403.
  • Не оставляйте файлы сайта root: если загружали их через sudo, поменяйте владельца — шаг 3.

На обычном хостинге

На обычном хостинге владельца менять не нужно: справка WordPress советует, чтобы файлы принадлежали вашему аккаунту, а не веб-серверу. Права ставьте те же — папкам 755, файлам 644, wp-config.php 440 или 400. Меняют их в файловом менеджере панели хостинга. Если не нашли, где это меняется в панели, напишите в поддержку хостинга: пришлите текст ошибки и адрес страницы.

Ошибки и как их исправить

ОшибкаЧто случилосьРазбор
Сайт отвечает 403 Forbiddennginx не может прочитать файлыРазбор
Unable to create directory в WordPressPHP не может писать в папку загрузокРазбор
Could not create directory при установке плагинаPHP не может писать в папку плагиновРазбор
WordPress просит данные FTPPHP не может сам записать файлыРазбор
Operation not permitted у chmod и chownКоманду запустили без sudoРазбор
Permission denied в терминалеНет прав на файл или папкуРазбор

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026