Se dopo un aggiornamento ownCloud visualizza il messaggio "Verifica di integrità non riuscita", apri innanzitutto l'avviso di amministrazione ed esamina il report dei file non validi; non modificare signature.json, disabilitare la verifica o rieseguire l'aggiornamento alla cieca. Il report identifica se il problema è dovuto a una mancata corrispondenza del file principale, a un file mancante o aggiuntivo o a un problema di firma dell'app. Ripristina solo il codice interessato dalla versione ufficiale esatta oppure installa un'app firmata compatibile, quindi esegui nuovamente la scansione. Questo approccio si applica a ownCloud Server (Classic); Infinite Scale utilizza un'architettura diversa e non utilizza questo occflusso di lavoro di verifica dell'integrità PHP.
Ad esempio, se un aggiornamento da una versione intermedia 10.x a un'altra lascia un errore index.phpe version.phpviene segnalato come tale INVALID_HASH, il problema probabile è che alcuni file di base appartengono ancora a una versione diversa o sono stati modificati. Se solo un'app installata manualmente viene segnalata per dati di firma mancanti, la sostituzione dei file di base non risolverà il problema. I dettagli dell'errore determinano quale soluzione è appropriata.
Leggere il rapporto prima di modificare i file.
Accedi come amministratore e apri l'avviso giallo di integrità del codice, quindi seleziona il collegamento per visualizzare l'elenco dei file non validi. La documentazione di ownCloud 10.16 descrive questo report e l'opzione di ri-scansione dalla pagina di amministrazione. Se la pagina web non è disponibile, esegui i controlli dalla directory di installazione di ownCloud come utente del server web:
sudo -u www-data ./occ integrity:check-core
sudo -u www-data ./occ integrity:check-app <appid>
Sostituisci www-datacon l'account utilizzato dal tuo server web e sostituisci <appid>con l'ID dell'app mostrato nel report. Su Docker, esegui lo stesso occcomando all'interno del container ownCloud utilizzando il metodo di distribuzione standard. I comandi ispezionano i file principali e un'app specifica; il manuale di ownCloud precisa che non esiste un singolo comando manuale per scansionare tutte le app.
Utilizza il tipo di errore per scegliere l'azione successiva:
INVALID_HASHIl file presenta un hash diverso nella sua firma. Potrebbe trattarsi di un aggiornamento parziale o di una versione mista, di una modifica locale o di una modifica imprevista. Confronta il file con la versione ufficiale esatta prima di sostituirlo.
FILE_MISSING: manca un file firmato. Ripristinalo dal pacchetto di rilascio corrispondente; verifica prima che la distribuzione, il packaging o le autorizzazioni non lo abbiano omesso.
EXTRA_FILE: un file esiste in una directory firmata ma non fa parte di tale firma. Potrebbe essere un residuo di una versione precedente o un file aggiunto localmente. Identifica il proprietario e lo scopo del file prima di rimuoverlo.
EXCEPTIONI dati della firma potrebbero essere assenti, non validi, fuori ambito o associati a un certificato revocato. Per un'app, controlla il codice sorgente e lo stato di rilascio e chiedi al manutentore una build firmata compatibile.
Un'app di terze parti installata manualmente può legittimamente generare un avviso se non è firmata; ownCloud documenta che le app non firmate installate al di fuori del Marketplace potrebbero rimanere segnalate. Questo non spiega un hash del core non valido. Durante la diagnosi, è importante tenere separati i risultati relativi all'app e al core.
Riparare una mancata corrispondenza del nucleo dalla versione corrispondente
- Eseguire un backup ripristinabile. Prima di sostituire i file del server, preservare il database, la configurazione e i dati secondo la procedura di backup prevista per la propria implementazione. Se l'aggiornamento non è completo o il servizio è instabile, abilitare la modalità di manutenzione e interrompere il traffico web prima di procedere alla riparazione. Non considerare una copia dei file come un sostituto del backup del database.
- Verifica la versione di ownCloud effettivamente in esecuzione. Controlla la panoramica amministrativa e le informazioni sulla versione presenti sul disco. Assicurati che il processo di aggiornamento sia stato completato e che tutti i nodi o i container del cluster eseguano la stessa versione di destinazione. Esamina i log di aggiornamento per individuare eventuali estrazioni interrotte, errori di autorizzazione o comandi interrotti prematuramente.
- Scarica l'archivio ufficiale per quella specifica versione. Non utilizzare un archivio "più recente" se l'istanza si trova su una versione precedente. Estrai il file in una directory temporanea separata e confronta solo i percorsi contrassegnati. Se un file è personalizzato dalla tua distribuzione o dagli strumenti di distribuzione, comprendi tale personalizzazione prima di sostituirlo.
- Sostituire con attenzione i file di sistema interessati. Per i file di sistema confermati, copiare le versioni ufficiali dall'archivio corrispondente, preservando la configurazione dell'istanza, i dati e le directory delle applicazioni compatibili. Evitare di sovrascrivere un nuovo archivio del server a una struttura di directory precedente senza seguire le istruzioni di aggiornamento: i file residui delle versioni precedenti possono a loro volta causare
EXTRA_FILEproblemi. Ripristinare la proprietà e le autorizzazioni normali utilizzando il metodo documentato per la propria installazione.
- Esegui nuovamente il controllo pertinente. Utilizzalo
integrity:check-coreper i risultati principali o integrity:check-app <appid>per una singola app. Puoi anche utilizzare l'azione di nuova scansione dalla pagina di amministrazione. Non modificare o eliminare manualmente signature.json; si tratta dei dati della firma necessari al verificatore.
Le linee guida di ownCloud sulla firma del codice forniscono esempi come il ripristino del file corretto index.phpdall'archivio version.phpdi rilascio, la rimozione di un file aggiuntivo non necessario identificato e il ripristino di un file mancante .htaccessdal tarball ufficiale del server. Questi sono esempi, non un elenco universale di sostituzioni: agisci sui percorsi esatti indicati nel tuo report.
Gestisci un avviso dell'app senza mascherarlo
Per un'app segnalata dopo l'aggiornamento del server, verificare innanzitutto che l'app supporti la versione di ownCloud di destinazione. Disabilitare un'app incompatibile tramite la procedura di amministrazione o da riga di comando supportata, quindi installare una versione ufficiale compatibile dal Marketplace o dal manutentore dell'app. Se un'app precedentemente firmata non è più firmata o il suo certificato risulta revocato, contattare il manutentore per ottenere un certificato sostitutivo correttamente firmato. Non copiare i dati di firma da un'app o versione diversa; le firme sono legate al contenuto dell'app e all'ambito del certificato.
Se l'app segnalata è un'app personalizzata gestita dalla tua organizzazione, il responsabile autorizzato dell'app deve compilare e firmare la release utilizzando la procedura appropriata e credenziali di firma attendibili. Gli amministratori non devono creare una firma sostitutiva per consentire l'esecuzione di codice sconosciuto o modificato. Se non è possibile stabilire l'origine e l'integrità di un file, conservare il report e analizzarlo come potenziale problema di sicurezza anziché ignorare l'avviso.
Verifica la riparazione
Esegui nuovamente il controllo di integrità pertinente e aggiorna la panoramica amministrativa. Verifica che gli stessi percorsi non vengano più visualizzati, che l'avviso relativo al componente riparato sia scomparso e che i log di ownCloud non mostrino nuovi errori di aggiornamento o di autorizzazione. Testa l'accesso, l'elenco dei file, il caricamento e l'app interessata. In una distribuzione multi-nodo, controlla ogni nodo; un risultato positivo su un server non garantisce che tutti i nodi utilizzino lo stesso codice.
Se il problema persiste, interrompi la sostituzione dei file e confronta la struttura delle directory con il pacchetto, l'immagine di distribuzione o il volume montato esatti per quella versione. Verifica la presenza di una seconda copia del codice, di bind mount obsoleti, di uno script di distribuzione che ripristina file obsoleti o di patch locali. Consulta le linee guida sulla firma del codice e l'integrità , le istruzioni di aggiornamento e la documentazione di ripristino di ownCloud 10.16 corrispondenti alla versione in uso . Questa pagina si riferisce a ownCloud Server 10.16; le versioni precedenti potrebbero essere diverse, quindi scegli la documentazione corrispondente alla versione installata.