Права на файлы сайта: какие поставить на VPS
Из-за неверных прав сайт отвечает 403, WordPress не загружает картинки и просит данные FTP, а с правами 777 сайт открыт взлому. В инструкции — как за пять шагов привести права в порядок на VPS с nginx.
Содержание 11
Коротко
| Что | Права | Владелец |
|---|---|---|
| Папки сайта | 755 | Ваш пользователь, для WordPress — пользователь PHP |
| Файлы сайта | 644 | Тот же, что у папок |
| wp-config.php | 440 | Пользователь 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 Forbidden | nginx не может прочитать файлы | Разбор |
Unable to create directory в WordPress | PHP не может писать в папку загрузок | Разбор |
Could not create directory при установке плагина | PHP не может писать в папку плагинов | Разбор |
| WordPress просит данные FTP | PHP не может сам записать файлы | Разбор |
Operation not permitted у chmod и chown | Команду запустили без sudo | Разбор |
Permission denied в терминале | Нет прав на файл или папку | Разбор |
Источники
- WordPress: права на файлы — папкам 755 или 750, файлам 644 или 640, wp-config.php 440 или 400, 777 не ставить.
- Справка find для Ubuntu 24.04 — условия -type d и -type f, действие -exec … {} +.
- Справка chmod для Ubuntu 24.04 — буквы ugoa, rwxX, права числом и ключи -R, -v и -c.
- Справка chown для Ubuntu 24.04 — записи владелец:группа, владелец: и :группа, ключ -R.
- Справка stat для Ubuntu 24.04 — формат -c и поля %a, %U, %G и %n.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026