diagnose_share_key.sh: some changes on script output.

This commit is contained in:
2026-09-15 01:17:59 +02:00
parent b1e02b737c
commit 44f143fbe8
+24 -8
View File
@@ -48,17 +48,30 @@ usage() {
fix - these are NOT signature problems, they are Server-Side fix - these are NOT signature problems, they are Server-Side
Encryption KEY-MATERIAL problems (a per-user 'share key' for a file Encryption KEY-MATERIAL problems (a per-user 'share key' for a file
is either missing on disk or fails to decrypt with that user's is either missing on disk or fails to decrypt with that user's
private key). This script accepts either a recovery_*.tsv or a private key).
restore_*.tsv report as input.
\033[1mThis script accepts either of two report types as input, and\033[m
\033[1mevaluates a different row/status from each:\033[m
\033[1mrecovery_*.tsv\033[m report (from recover_bad_signature.sh)
-> evaluates every row whose validation is \033[1mREAD_ERROR\033[m
\033[1mrestore_*.tsv\033[m report (from restore_bad_signature.sh)
-> evaluates every row whose status is \033[1mWRITE_ERROR\033[m
This script changes NOTHING. It never decrypts a file, never This script changes NOTHING. It never decrypts a file, never
touches 'encryption_skip_signature_check', and never writes touches 'encryption_skip_signature_check', and never writes
anywhere except its own report file. It only: anywhere except its own report file. It only:
1. Reads a chosen recovery_*.tsv report (produced by 1. Reads the chosen report and picks out the matching rows:
recover_bad_signature.sh) and picks out every row whose
validation is READ_ERROR and whose detail text matches one of - from a \033[1mrecovery_*.tsv\033[m report: every row whose
the two known key-material error signatures above. validation is \033[1mREAD_ERROR\033[m
- from a \033[1mrestore_*.tsv\033[m report: every row whose
status is \033[1mWRITE_ERROR\033[m
...and, in both cases, whose detail text matches one of the
two known key-material error signatures above.
2. For each such file, resolves - via Nextcloud's normal, 2. For each such file, resolves - via Nextcloud's normal,
read-only Files API (\$node->getOwner(), \$folder->getById()) read-only Files API (\$node->getOwner(), \$folder->getById())
- who currently owns the file, i.e. whether the affected - who currently owns the file, i.e. whether the affected
@@ -405,8 +418,11 @@ if $terminal ; then
Nextcloud storage and never touches 'encryption_skip_signature_check'. Nextcloud storage and never touches 'encryption_skip_signature_check'.
It only inspects, on disk and via the normal Files API, whether the It only inspects, on disk and via the normal Files API, whether the
expected encryption key files are present for accounts/files that expected encryption key files are present for accounts/files that
recover_bad_signature.sh could not read (READ_ERROR, not 'Bad recover_bad_signature.sh or restore_bad_signature.sh could not
Signature').\033[m" process (not 'Bad Signature').\033[m"
echo ""
echo -e " \033[1mrecovery_*.tsv\033[m report -> evaluates \033[1mREAD_ERROR\033[m rows"
echo -e " \033[1mrestore_*.tsv\033[m report -> evaluates \033[1mWRITE_ERROR\033[m rows"
echo -e "\033[32m-----\033[m" echo -e "\033[32m-----\033[m"
fi fi