Если после обновления ownCloud отображает сообщение «Проверка целостности не пройдена», сначала откройте предупреждение администратора и изучите отчет о недействительных файлах; не редактируйте его signature.json, не отключайте проверку и не запускайте обновление вслепую. В отчете указывается, связана ли проблема с несоответствием основных файлов, отсутствующим или лишним файлом, или проблемой с цифровой подписью приложения. Восстановите только затронутый код из точной официальной версии или установите совместимое подписанное приложение, а затем выполните повторное сканирование. Этот подход применим к ownCloud Server (Classic); Infinite Scale использует другую архитектуру и не использует этот occрабочий процесс проверки целостности PHP.
Например, если при обновлении с одной версии 10.x до другой ошибка сохраняется index.phpи version.phpпомечается как отсутствующая INVALID_HASH, вероятная причина заключается в том, что некоторые файлы дампа памяти по-прежнему относятся к другой версии или были изменены. Если только приложение, установленное вручную, помечено как отсутствующее из-за отсутствия данных подписи, замена файлов дампа памяти не решит проблему. Подробности ошибки определяют, какое исправление подходит.
Перед изменением файлов ознакомьтесь с отчетом.
Войдите в систему как администратор и откройте предупреждение о несоответствии кода желтого цвета, затем выберите ссылку для просмотра списка недействительных файлов. Документация ownCloud 10.16 описывает этот отчет и опцию повторного сканирования на странице администратора. Если веб-страница недоступна, выполните проверки из каталога установки ownCloud от имени пользователя веб-сервера:
sudo -u www-data ./occ integrity:check-core
sudo -u www-data ./occ integrity:check-app <appid>
Замените www-dataна учетную запись, используемую вашим веб-сервером, и <appid>на идентификатор приложения, указанный в отчете. В Docker выполните ту же occкоманду внутри контейнера ownCloud, используя обычный метод развертывания. Команды проверяют файлы дампа памяти и именованное приложение; в руководстве ownCloud отмечается, что нет единой команды для сканирования каждого приложения.
Используйте тип ошибки, чтобы выбрать следующее действие:
INVALID_HASHФайл отличается от хеша по своей сигнатуре. Это может быть частичное или смешанное обновление версий, локальная правка или неожиданное изменение. Перед заменой сравните файл с точной официальной версией.
FILE_MISSINGОтсутствует подписанный файл. Восстановите его из соответствующего пакета выпуска; сначала убедитесь, что он не был пропущен при развертывании, упаковке или настройках прав доступа .
EXTRA_FILEФайл существует в подписанном каталоге, но не является частью этой подписи. Это может быть остаток от более старой версии или локально добавленный файл. Перед удалением определите его владельца и назначение .
EXCEPTIONДанные подписи могут отсутствовать, быть недействительными, выходить за рамки допустимого диапазона или быть привязаны к отозванному сертификату. Для приложения проверьте его исходный код и статус выпуска и обратитесь к его сопровождающему за совместимой подписанной сборкой.
При установке стороннего приложения вручную может возникнуть предупреждение, если оно не подписано; в документации ownCloud указано, что неподписанные приложения, установленные вне Marketplace, могут оставаться помеченными как проблемные. Это не объясняет недействительный хэш ядра. При диагностике следует разделять результаты проверки приложения и ядра.
Устранить основное несоответствие в соответствующей версии.
- Создайте восстанавливаемую резервную копию. Перед заменой файлов сервера сохраните базу данных, конфигурацию и данные в соответствии с процедурой резервного копирования для вашей системы. Если обновление не завершено или служба нестабильна, включите режим обслуживания и остановите веб-трафик перед восстановлением. Не рассматривайте копию файлов как замену резервной копии базы данных.
- Убедитесь, что ownCloud действительно работает в той или иной версии. Проверьте обзор административной панели и информацию о версии на диске. Убедитесь, что процесс обновления завершился и все узлы кластера или контейнеры работают под управлением одной и той же целевой версии. Просмотрите журналы обновления на предмет прерванного извлечения данных, ошибок доступа или преждевременной остановки команды.
- Получите официальный архив именно для этой версии. Не используйте архив с пометкой «последняя версия», если используется более ранняя версия. Распакуйте его во временную директорию и сравнивайте только отмеченные пути. Если файл изменен вашей дистрибуцией или инструментами развертывания, разберитесь в этих изменениях, прежде чем заменять его.
- Замените затронутые файлы дампа памяти с осторожностью. Для подтвержденных файлов дампа памяти скопируйте официальные версии из соответствующего архива, сохраняя при этом конфигурацию экземпляра, данные и совместимые каталоги приложений. Избегайте наложения нового архива сервера на старую структуру без соблюдения инструкций по обновлению: оставшиеся файлы из предыдущих версий сами по себе могут привести к
EXTRA_FILEпроблемам. Восстановите обычные права доступа и разрешения, используя описанный в документации метод для вашей установки.
- Повторите соответствующую проверку. Используйте
integrity:check-coreдля основных результатов или integrity:check-app <appid>для одного приложения. Вы также можете использовать функцию повторного сканирования на странице администратора. Не редактируйте и не удаляйте вручную signature.json; это данные подписи, необходимые проверяющему.
В руководстве ownCloud по цифровой подписи кода приводятся примеры, такие как восстановление правильного файла index.phpиз version.phpархива релиза, удаление выявленного ненужного лишнего файла и восстановление отсутствующего файла .htaccessиз официального серверного архива. Это лишь примеры, а не универсальный список замен: действуйте, используя точные пути, указанные в вашем собственном отчете.
Обрабатывайте предупреждения приложения, не скрывая их.
Для приложения, отмеченного как проблемное после обновления сервера, сначала убедитесь, что оно поддерживает целевую версию ownCloud. Отключите несовместимое приложение с помощью поддерживаемой процедуры администрирования или командной строки, затем установите официальную совместимую версию из Marketplace или от разработчика приложения. Если ранее подписанное приложение теперь не подписано или его сертификат аннулирован, свяжитесь с разработчиком для получения правильно подписанной замены. Не копируйте данные подписи из другого приложения или версии; подписи привязаны к содержимому приложения и области действия сертификата.
Если отмеченное приложение является пользовательским приложением, поддерживаемым вашей организацией, уполномоченный разработчик приложения должен собрать и подписать релиз, используя соответствующий процесс и доверенные учетные данные для подписи. Администраторы не должны создавать заменяющую подпись, чтобы обеспечить прохождение проверки неизвестного или измененного кода. Если вы не можете установить источник и целостность файла, сохраните отчет и исследуйте его как потенциальную проблему безопасности, вместо того чтобы подавлять предупреждение.
Проверьте ремонт
Повторно выполните соответствующую проверку целостности и обновите обзор административной панели. Убедитесь, что те же пути больше не отображаются, предупреждение для исправленного компонента исчезло, а в журналах ownCloud нет новых ошибок обновления или разрешений. Проверьте вход в систему, отображение списка файлов, загрузку и работу затронутого приложения. В многоузловой конфигурации проверьте каждый узел; чистый результат на одном сервере не доказывает, что все узлы используют соответствующий код.
Если проблема сохраняется, прекратите замену файлов и сравните дерево запущенных процессов с точным пакетом, образом развертывания или смонтированным томом для данной версии. Проверьте наличие второй копии кода, устаревших точек монтирования, скрипта развертывания, восстанавливающего старые файлы, или локальных исправлений. Обратитесь к руководству по цифровой подписи и обеспечению целостности кода ownCloud 10.16 , инструкциям по обновлению ownCloud и документации по восстановлению, соответствующим вашей версии. Эта страница предназначена для ownCloud Server 10.16; более ранние версии могут отличаться, поэтому выбирайте документацию, соответствующую установленной версии.