Права 777 в Linux: почему это опасно и как исправить на 755 и 644
Почему chmod -R 777 — главная ошибка новичков?
Когда сайт выдает ошибку Permission Denied, новички часто решают проблему командой chmod -R 777 /var/www. Это делает систему критически уязвимой: любой загруженный злоумышленником PHP-шелл получает право на выполнение и полную перезапись всех файлов сервера.
Эталонные права доступа для веб-сервера
| Тип объекта | Безопасные права | Расшифровка |
|---|---|---|
| Каталоги (папки) | 755 (rwxr-xr-x) | Владелец: всё, остальные: чтение и вход |
| Файлы (.php, .html) | 644 (rw-r--r--) | Владелец: запись, остальные: только чтение |
| Файлы паролей (.env) | 600 (rw-------) | Доступ только владельцу файла |
Массовое исправление прав доступа одной командой
- Переходим в директорию вашего сайта:
cd /var/www/my_site - Назначаем корректного системного владельца:
sudo chown -R www-data:www-data /var/www/my_site - Массово выставляем права 755 ТОЛЬКО на папки:
sudo find /var/www/my_site -type d -exec chmod 755 {} + - Массово выставляем права 644 ТОЛЬКО на файлы:
sudo find /var/www/my_site -type f -exec chmod 644 {} + - Защищаем конфиг с паролями (.env или wp-config.php):
sudo chmod 600 /var/www/my_site/.env
Команда find ... -exec chmod автоматически разделяет папки и файлы, не нарушая возможность перехода по директориям веб-сервером.
Частые вопросы (FAQ)
Что будет, если поставить права 644 на папку?
Веб-сервер не сможет зайти внутрь папки (каталогам требуется бит исполнения 'x' для открытия содержимого).
Почему WordPress не может загрузить картинку после смены прав?
Убедитесь, что папка wp-content/uploads принадлежит пользователю веб-сервера (chown -R www-data:www-data uploads).
Что означает первая цифра 7 в правах 755?
Сумма битов: 4 (чтение r) + 2 (запись w) + 1 (выполнение x) = 7 для владельца.
Как найти все файлы с опасными правами 777 на сервере?
Выполните команду: sudo find /var/www -perm 0777.