Права доступа к файлам и каталогам на сервере — не мелочь для настройки «чтобы работало», а один из базовых уровней безопасности сайта. Слишком строгие права ломают загрузку файлов и кеширование, слишком свободные открывают возможность выполнить чужой код на сервере.
Как читать права
Права в Unix-подобных системах записываются тремя цифрами — для владельца, группы и остальных пользователей. Каждая цифра складывается из трёх флагов:
| Флаг | Значение | Для файла | Для каталога |
|---|---|---|---|
| 4 (r) | Чтение | Открыть и прочитать | Посмотреть содержимое |
| 2 (w) | Запись | Изменить содержимое | Создавать и удалять файлы внутри |
| 1 (x) | Выполнение | Запустить как программу | Зайти внутрь каталога |
Права 755 означают: владельцу — всё (7 = 4+2+1), группе и остальным — чтение и выполнение (5 = 4+1).
Правильные значения для сайта на Битрикс
| Объект | Права | Комментарий |
|---|---|---|
| Обычные каталоги | 755 | Владелец управляет, остальные читают |
| Обычные файлы | 644 | Владелец редактирует, остальные читают |
| Каталоги для загрузки файлов | 755 | Веб-сервер должен иметь право писать как владелец |
| Файлы с паролями | 600 | dbconn.php, .settings.php — только владелец |
| Исполняемые скрипты обслуживания | 700 | Только владелец, без доступа даже на чтение остальным |
Ключевое условие для корректной работы этой схемы — владелец файлов должен совпадать с пользователем, от которого работает веб-сервер. Без этого совпадения даже правильные права 755/644 не дадут PHP писать туда, куда нужно, и придётся либо менять владельца, либо ослаблять права для группы или всех — второе менее желательно.
Нужна помощь с Битрикс?
Массовая установка прав
# каталоги — 755
find /home/site/public_html -type d -exec chmod 755 {} \;
# файлы — 644
find /home/site/public_html -type f -exec chmod 644 {} \;
# отдельно закрыть файлы с паролями
chmod 600 /home/site/public_html/bitrix/php_interface/dbconn.php
chmod 600 /home/site/public_html/bitrix/.settings.php
После массовой установки стоит отдельно проверить каталоги, куда сайт должен писать: кеш, загрузки, временные файлы. Слишком строгие права на них после общей команды — частая причина, почему сайт вдруг перестаёт сохранять картинки или формировать кеш.
Почему 777 — плохое решение
Права 777 дают запись и выполнение всем без исключения — включая любого другого пользователя на том же сервере, если хостинг общий, и потенциально любой процесс, который получит хотя бы минимальный доступ к файловой системе. На файле это означает, что его можно не только прочитать, но и заменить чужим содержимым — включая вредоносный код, который затем выполнится с правами веб-сервера.
Установка 777 «чтобы заработало» временно решает симптом — ошибку записи или доступа, — но открывает путь для последующей компрометации. Правильное решение почти всегда — исправить владельца файлов, а не ослаблять права до предела.
Проверка текущих прав
# посмотреть права каталога и его содержимого
ls -la /home/site/public_html/upload/
# найти файлы с правами 777 по всему сайту
find /home/site/public_html -perm 777 -type f
Вторая команда — быстрый способ найти уже существующие излишне открытые файлы, если сайт достался в наследство от предыдущего разработчика или переносился с хостинга, где права никто не контролировал.
Права и загрузка файлов через админку
Если после установки правильных прав перестают загружаться изображения или документы через административную часть, причина почти всегда в несовпадении владельца: PHP-процесс не может создать файл в каталоге, которым владеет другой системный пользователь, даже если права каталога формально позволяют запись группе.
Решается это не ослаблением прав, а приведением владельца файлов
к пользователю, от имени которого работает веб-сервер, — на большинстве
современных хостингов это делается одной командой chown
для всей структуры сайта.
Частые ошибки
- Права 777 на весь сайт «для надёжности». Открывает возможность выполнить произвольный код через загруженный файл.
- Файлы с паролями доступны на чтение всем. Пароль от базы данных виден любому, кто получит доступ к файловой системе.
- После смены хостинга владелец файлов не проверен. Правильные права есть, но сайт всё равно не может писать в свои же папки.
- Проверка прав не входит в регулярный аудит. Временное ослабление для отладки забывают вернуть обратно.
Итог
Базовая формула для сайта на 1С-Битрикс — 755 для каталогов, 644 для файлов, 600 для файлов с паролями подключения к базе. Права 777 не решают проблему доступа правильно — они лишь маскируют её, одновременно открывая путь для компрометации сайта. Если после установки корректных прав что-то перестаёт работать, в девяти случаях из десяти дело не в самих правах, а в несовпадении владельца файлов с пользователем веб-сервера.
