objectif
Contrôler les permissions par défaut lors de la création de fichiers/dirs.
code minimal
import os, tempfile, pathlib, stat
if os.name == "posix":
old = os.umask(0o077) # restreindre
try:
with tempfile.TemporaryDirectory() as tmp:
p = pathlib.Path(tmp)/"f"; p.write_text("x", encoding="utf-8")
mode = stat.S_IMODE(os.stat(p).st_mode)
print((mode & 0o077) == 0) # attendu: True (pas de perms groupe/autres)
finally:
os.umask(old)
else:
print(True)
utilisation
import os
if os.name == "posix":
cur = os.umask(0o022); os.umask(cur) # lire la valeur courante
print(isinstance(cur, int))
else:
print(True)
variante(s) utile(s)
import os
print(os.name in ("posix","nt"))
notes
- umask affecte les permissions maximales autorisées à la création.
- Réinitialisez toujours l’umask après usage (try/finally).