diff --git a/scripts/exporter_cles.py b/scripts/exporter_cles.py index 293eda9..fac8cb1 100644 --- a/scripts/exporter_cles.py +++ b/scripts/exporter_cles.py @@ -192,8 +192,26 @@ def main() -> int: print(f" ! {e}", file=sys.stderr) return 1 - archive.chmod(0o600) + # UN `chmod` QUI ECHOUE NE DOIT PAS ANNULER UNE VERIFICATION REUSSIE. + # + # Une cle USB est le plus souvent en FAT32 ou exFAT — des systemes qui n'ont pas de + # permissions Unix. `chmod` y echoue ou n'a aucun effet, selon les options de montage. + # Sans cette garde, le script mourrait sur sa DERNIERE ligne, apres avoir ecrit et + # verifie l'archive : l'exploitant verrait une trace d'erreur et douterait d'un + # travail pourtant termine. Le pire moment pour semer un doute. + # + # On le DIT plutot que de le taire : sur un support sans permissions, l'archive est + # lisible par quiconque branche la cle. C'est precisement pourquoi elle est chiffree — + # mais il faut le savoir pour choisir ou ranger la cle. + try: + archive.chmod(0o600) + acces = "0600 (lisible par toi seul)" + except OSError: + acces = ("permissions non applicables — support sans droits Unix (FAT/exFAT). " + "L'archive est lisible par qui branche la cle : c'est le chiffrement " + "qui protege, pas le support.") print(f" VERIFIE : {len(attendu)} fichier(s) relus, empreintes identiques.") + print(f" Acces : {acces}") print(f" Archive : {archive} ({archive.stat().st_size} octets)\n") print(" IL RESTE DEUX GESTES, ET ILS NE SONT PAS FACULTATIFS :") print(" 1. Ranger la phrase de passe AILLEURS que ce support. Separes, ils ne")