Как вернуть стандартные права (chmod 755 / 644) на веб-папку в Linux
Что происходит после ошибочного chmod -R 777
Новички часто пытаются решить проблемы с загрузкой картинок командой chmod -R 777 /var/www. Это создает критическую дыру в безопасности (любой пользователь может перезаписать скрипты) и часто ломает работу SSH и веб-сервера (ошибки 500 Internal Server Error и 403 Forbidden).
Золотой стандарт прав доступа для веб-директорий
Правильная схема разрешений в Linux для сайтов:
- Все директории (папки) должны иметь права 755 (чтение, запись владельцу, вход всем);
- Все файлы должны иметь права 644 (чтение всем, запись только владельцу).
Команды безопасного сброса прав (на примере /var/www/my_site):
# 1. Меняем владельца на системного пользователя веб-сервера (www-data):
sudo chown -R www-data:www-data /var/www/my_site
# 2. Находим ВСЕ папки и выставляем 755:
sudo find /var/www/my_site -type d -exec chmod 755 {} +
# 3. Находим ВСЕ файлы и выставляем 644:
sudo find /var/www/my_site -type f -exec chmod 644 {} +Для файлов конфигурации с паролями (.env, wp-config.php): Рекомендуется выставить еще более строгие права 600 или 640, чтобы их не могли прочитать посторонние локальные пользователи: chmod 600 /var/www/my_site/.env.
Частые вопросы (FAQ)
Почему нельзя просто сделать chmod -R 644 на всю папку?
Если сделать chmod 644 на папки, они потеряют флаг исполнения (+x). В Linux флаг +x для каталогов означает право войти в папку. Без него сервер выдаст ошибку 403 Forbidden на весь сайт.
Кто такой пользователь www-data?
Это специальная системная непривилегированная учетная запись, от имени которой работают веб-серверы Nginx, Apache и службы PHP-FPM в Ubuntu и Debian.
Как дать права на запись только одной конкретной папке uploads?
Убедитесь, что владелец www-data: sudo chown -R www-data:www-data /var/www/site/uploads и установите права: chmod 775 /var/www/site/uploads.
Какой пользователь веб-сервера используется в CentOS/AlmaLinux?
В семействе Red Hat / CentOS веб-сервер работает от имени пользователя apache или nginx (вместо www-data).