Выпуск RISH 2.6.3
Как расследование случайного изменения прав /var/www привело к новой версии RISH.
Всё началось с неожиданного результата на свежем сервере: сразу после установки RISH штатная проверка сообщила,
что каталог /var/www имеет права 755, хотя RISH уже устанавливал для него требуемые 751.
На первый взгляд казалось, что права меняет один из поздних этапов установки — PHP или MariaDB. Последовательная проверка операций показала: изменение действительно проявляется после установки системных пакетов, но причина находится не в настройках базы данных и не в скриптах RISH.
Расследование привело к обновлённому пакету Apache httpd-filesystem в AlmaLinux 10.
В новых сборках он стал обслуживать каталог /var/www через системный механизм tmpfiles.d
и восстанавливать для него стандартные права Apache — 755.
Почему это важно для RISH
Для обычной установки Apache права 755 являются штатным значением.
RISH использует более строгую схему размещения сайтов: каждый пользователь сервера получает собственный каталог с отдельными сайтами, логами и временными файлами.
/var/www
└── <user>
├── www
├── logs
├── session
└── tmp
В этой схеме родительский каталог /var/www должен иметь владельца root:root и права 751,
а каталог конкретного пользователя /var/www/<user> — владельца root:<user> и права 750.
Права 751 позволяют веб-серверу и авторизованным пользователям проходить к разрешённым вложенным каталогам,
но не позволяют просматривать список каталогов других пользователей. Это является частью изоляции сайтов в RISH.
Из-за изменения в Apache после системной обработки правил tmpfiles.d права /var/www могли возвращаться с 751 на 755.
Проверка настроек RISH корректно обнаруживала такое отклонение и предлагала восстановить нужные права.
Что изменено в RISH
RISH теперь автоматически создаёт совместимую системную настройку Apache в /etc/tmpfiles.d/httpd.conf.
Она сохраняет актуальные правила установленного пакета Apache, но закрепляет требуемые RISH права для каталога /var/www:
d /var/www 751 root root -
Благодаря этому усиленная изоляция каталогов RISH сохраняется при последующей обработке системных правил и после обновлений Apache.
Что нужно сделать
Достаточно обновить RISH стандартным способом через меню обновления. Во время обновления RISH автоматически:
- проверит, управляет ли установленная версия Apache каталогом
/var/wwwчерезtmpfiles.d; - создаст или обновит совместимую настройку RISH, если она необходима;
- восстановит требуемые права
/var/www = 751; - предотвратит повторный сброс прав при дальнейшей системной обработке каталогов Apache.
Отдельный запуск проверки и восстановления настроек для этого изменения не требуется. Если настройка впоследствии будет удалена или повреждена, штатная проверка RISH сможет восстановить её автоматически.
Проверка результата
При желании текущие права каталога можно проверить командой:
stat -c '%a %U:%G %n' /var/www
Корректный результат для RISH:
751 root:root /var/www
Изменение затрагивает только права служебного родительского каталога и механизм их сохранения. Файлы сайтов, базы данных и содержимое пользовательских каталогов не изменяются.