В 1С-Битрикс права на файлы и папки существуют на двух уровнях: физические права операционной системы (chmod/владелец) и логические права модуля «Управление структурой» внутри админки. Разберём оба и покажем, как их согласовать.
Два уровня прав: файловая система и модуль
Прежде чем что-то настраивать, важно понимать разницу между двумя независимыми механизмами.
- Права ОС (файловая система) — стандартные права UNIX (chmod), владелец и группа файла. Определяют, может ли веб-сервер (Apache/Nginx/php-fpm) читать, писать и исполнять файл. Настраиваются на сервере.
- Логические права модуля «Управление структурой» — права Битрикса на разделы и файлы публичной части, привязанные к группам пользователей. Определяют, кто видит и редактирует страницу через админку и кто может открыть раздел в публичной части.
Эти уровни не заменяют друг друга. Если у веб-сервера нет прав на запись в папку, никакие настройки в админке не позволят загрузить туда файл — и наоборот.
Права файловой системы (chmod и владелец)
1С-Битрикс работает на PHP, поэтому применяются обычные права UNIX. Рекомендуемые значения:
| Объект | Права (chmod) | Числом |
|---|---|---|
| Файлы | rw-r--r-- | 644 |
| Папки | rwxr-xr-x | 755 |
Служебные файлы с паролями (например .settings.php, dbconn.php) | rw------- | 600 |
Ключевой момент — владелец файлов должен совпадать с пользователем, от имени которого работает PHP (php-fpm). Тогда достаточно прав 644/755, а веб-сервер сможет писать в свои каталоги без «мировой» записи (777).
Установить рекомендованные права рекурсивно можно так:
- Подключитесь к серверу по SSH.
- Перейдите в корень сайта.
- Выполните для папок:
find . -type d -exec chmod 755 {} \; - Выполните для файлов:
find . -type f -exec chmod 644 {} \; - При необходимости смените владельца:
chown -R bitrix:bitrix .(имя пользователя зависит от конфигурации).
Каталоги, куда Битрикс пишет постоянно — /upload/, /bitrix/cache/, /bitrix/managed_cache/, /bitrix/stack_cache/, /bitrix/tmp/ — должны быть доступны PHP на запись.
Логические права модуля «Управление структурой»
Логические права управляют доступом к разделам и файлам публичной части из админки. Открыть настройку:
- Перейдите в Контент → Структура сайта → Файлы и папки.
- Отметьте нужный раздел или файл галочкой.
- Нажмите на панели кнопку «Доступ» (или выберите пункт в контекстном меню строки).
- В открывшемся окне назначьте группам пользователей уровень доступа и сохраните.
Уровни доступа Битрикса к разделам/файлам:
| Уровень | Что можно |
|---|---|
| Доступ закрыт | Раздел недоступен даже на просмотр |
| Чтение | Просмотр публичной страницы |
| Изменение (документооборот) | Правка в рамках бизнес-процессов/документооборота |
| Запись | Редактирование содержимого страниц и файлов |
| Полный доступ | Изменение содержимого и самих прав доступа раздела |
Права наследуются от родительского раздела вниз по дереву. В отдельной папке можно переопределить наследование и задать собственный набор прав, который распространится на вложенные объекты.
Файл .access.php: где хранятся логические права
Назначенные через админку логические права Битрикс сохраняет в служебном файле .access.php внутри соответствующей папки публичной части. Он содержит массив соответствий «ID группы → символ уровня доступа».
Символы уровней в .access.php:
D— доступ закрыт (Denied);R— чтение (Read);U— изменение по документообороту;W— запись (Write);X— полный доступ.
Редактировать .access.php вручную можно, но обычно не нужно — проще и безопаснее менять права через окно «Доступ». Если файл случайно удалён, права раздела вернутся к наследованию от родителя.
Важно: файл .access.php должен быть доступен веб-серверу на чтение (права 644). Если PHP не может его прочитать, права раздела применятся некорректно.
Загрузка файлов и права папки /upload/
Основная точка, где сходятся оба уровня прав — каталог /upload/. Сюда попадают файлы из инфоблоков, картинки, документы и результаты работы модулей.
Чтобы загрузка через админку работала:
- папка
/upload/и её подпапки должны быть доступны PHP на запись (владелец совпадает с пользователем php-fpm, права755); - у группы пользователя, который загружает файл, должно быть право записи в соответствующем разделе или модуле;
- в настройках модуля «Главный» не должны стоять слишком жёсткие ограничения на типы/размер загружаемых файлов.
Проверить корректность прав на запись помогает раздел Настройки → Инструменты → Проверка системы — тест выявит каталоги, недоступные на запись, и другие проблемы окружения.
Частые ошибки
Ошибки при работе с правами на файлы чаще всего сводятся к нескольким сценариям.
- Права 777 «чтобы работало». Мировая запись — угроза безопасности: любой процесс на сервере может изменить файл. Правильное решение — привести владельца файлов в соответствие с пользователем php-fpm и использовать
644/755. - Несовпадение владельца. Файлы, распакованные из архива под root или залитые по FTP под другим пользователем, принадлежат не тому владельцу — PHP не может в них писать. Помогает
chown -Rна корректного пользователя. - Путают логические и физические права. Настроили «Доступ» в админке, но забыли про права ОС — загрузка всё равно падает. И наоборот. Проверяйте оба уровня.
- Удалили или повредили
.access.php. Раздел неожиданно стал открытым или закрытым для групп. Восстанавливается пересохранением прав через окно «Доступ». - Закрыли доступ группе «Все пользователи (в том числе неавторизованные)». Публичная страница перестаёт открываться для гостей. Проверьте права этой группы на раздел.
- Кэш не очищается. После смены прав старое состояние может держаться в кэше — сбросьте кэш в Настройки → Настройки продукта → Автокэширование или очистите папку
/bitrix/cache/.
Итог
Права доступа к файлам и папкам сайта в 1С-Битрикс работают на двух уровнях, и оба нужно держать согласованными.
- Файловая система: файлы
644, папки755, служебные файлы с паролями600, владелец совпадает с пользователем php-fpm. Никаких777. - Логические права модуля: назначаются в Контент → Структура сайта → Файлы и папки → «Доступ», привязаны к группам пользователей, хранятся в
.access.phpи наследуются по дереву разделов. - Для загрузки файлов должны совпасть оба уровня: право PHP на запись в
/upload/и право группы на запись в разделе.
Проверяйте окружение через Настройки → Инструменты → Проверка системы и не забывайте сбрасывать кэш после изменения прав.