"""Durcissement des permissions NTFS des fichiers sensibles (secrets, jetons, base de
données) : restreint l'accès au seul compte Windows courant, pour qu'un autre compte
utilisateur sur la même machine ne puisse pas les lire directement sur le disque.

Ceci ne protège pas contre un accès disque hors Windows (disque démonté ailleurs) —
seul le chiffrement de disque (BitLocker / Chiffrement de l'appareil) protège ce cas,
voir le README."""

import os
import subprocess
from pathlib import Path


def verrouiller_fichier(chemin: Path) -> None:
    if not chemin.exists():
        return

    if os.name != "nt":
        # Hébergement Linux (ex. OVH) : équivalent POSIX, lecture/écriture réservées
        # au propriétaire du fichier uniquement.
        try:
            chemin.chmod(0o600)
        except OSError:
            pass
        return

    utilisateur = os.environ.get("USERNAME")
    if not utilisateur:
        return
    try:
        subprocess.run(
            ["icacls", str(chemin), "/inheritance:r", "/grant:r", f"{utilisateur}:F"],
            capture_output=True,
            check=False,
            timeout=10,
        )
    except (OSError, subprocess.SubprocessError):
        pass
