Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Смена владельца файлов в Linux: исправление прав сайта через chown www-data

Обновлено: 27.08.2026 · Официальная документация ↗

Почему сайт перестает работать после загрузки новых файлов?

Типичная ситуация: веб-мастер залил обновленный архив сайта через FTP/SFTP или распаковал его в консоли от имени пользователя root. В результате созданные файлы принадлежат суперпользователю root с правами доступа, запрещающими запись другим процессам. Возникают следующие проблемы:

  • При открытии страниц сайта в браузере выдается ошибка 403 Forbidden.
  • CMS (WordPress, 1С-Битрикс, Laravel) не может загружать картинки и плагины: Permission denied: unable to write to upload directory.
  • В логах веб-сервера появляются записи: open() "/var/www/site/index.php" failed (13: Permission denied).

Инструкция по восстановлению корректного владельца файлов

Веб-серверы Nginx, Apache и обработчик PHP-FPM в Ubuntu/Debian по умолчанию работают под системной учетной записью и группой www-data (в CentOS/RHEL/AlmaLinux — пользователь apache или nginx).

  1. Шаг 1. Проверяем текущего владельца папки:
    ls -la /var/www/html

    Если в столбце владельца написано root root, веб-сервер не имеет прав на изменение этих файлов.

  2. Шаг 2. Рекурсивно меняем владельца и группу (команда chown):

    Флаг -R (recursive) применяет смену владельца абсолютно ко всем вложенным папкам и файлам:

    # Для Ubuntu / Debian:
    sudo chown -R www-data:www-data /var/www/html
    
    # Для CentOS / RHEL / AlmaLinux:
    sudo chown -R nginx:nginx /var/www/html
  3. Шаг 3. Выставляем правильные стандартные права доступа (chmod):

    В целях безопасности каталоги должны иметь права 755 (rwxr-xr-x), а файлы — 644 (rw-r--r--):

    # Выставляем права 755 для всех директорий:
    sudo find /var/www/html -type d -exec chmod 755 {} \;
    
    # Выставляем права 644 для всех файлов:
    sudo find /var/www/html -type f -exec chmod 644 {} \;
💡 Практика специалистов: При настройке Laravel или WordPress часто забывают про права на каталоги хранения кэша и сессий. Всегда дополнительно проверяйте права на запись для папок 'storage' и 'bootstrap/cache' в Laravel и 'wp-content/uploads' в WordPress.

Частые вопросы (FAQ)

Почему нельзя просто выставить права 777 на всю папку сайта?

Права 777 (chmod -R 777) разрешают запись, изменение и запуск файлов любому пользователю и скрипту в системе. Если злоумышленник найдет уязвимость в плагине, он сможет легко загрузить веб-шелл и полностью перехватить контроль над сервером.

Что означает первая и вторая часть в записи 'www-data:www-data'?

Первая часть до двоеточия указывает имя системного пользователя-владельца, а вторая часть после двоеточия — группу пользователей.

Как разрешить конкретному FTP-пользователю редактировать файлы сайта вместе с www-data?

Добавьте вашего FTP-пользователя (например, alex) в группу www-data: sudo usermod -aG www-data alex, и установите права группы на запись: sudo chmod -R 775 /var/www/html.

Что делать, если в CentOS после смены владельца все равно пишет 403 Forbidden?

В CentOS/RHEL причиной блокировки часто является система безопасности SELinux. Восстановите контекст безопасности командой: sudo restorecon -R /var/www/html.

Полезные материалы
Рекомендуем