cles : un chmod refuse ne doit pas annuler une verification reussie
Some checks are pending
verifier / verifier (push) Waiting to run
Some checks are pending
verifier / verifier (push) Waiting to run
Une cle USB est le plus souvent en FAT32 ou exFAT — pas de permissions Unix. Le chmod de la derniere ligne y echoue, et le script serait mort APRES avoir ecrit et verifie l archive : une trace d erreur sur un travail termine, au pire moment pour semer un doute. On le dit plutot que de le taire : sur un support sans droits, l archive est lisible par qui branche la cle. C est le chiffrement qui protege, pas le support. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
This commit is contained in:
parent
bebdb84212
commit
3eff217bd5
1 changed files with 19 additions and 1 deletions
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Reference in a new issue