← retour aux snippets

os.chmod: gérer les droits Unix en octal

Appliquer des permissions de fichier avec des masques 0oXYZ.

python filesystem #os#chmod#permissions

objectif

Appliquer des permissions de fichier avec des masques 0oXYZ.

code minimal

import os, tempfile, pathlib, stat
with tempfile.TemporaryDirectory() as tmp:
    p = pathlib.Path(tmp)/"f"; p.write_text("x", encoding="utf-8")
    os.chmod(p, 0o640)
    mode = stat.S_IMODE(os.stat(p).st_mode)
    print(oct(mode) == "0o640")  # attendu: True

utilisation

import os, tempfile, pathlib, stat
with tempfile.TemporaryDirectory() as tmp:
    p = pathlib.Path(tmp)/"f"; p.write_text("x")
    os.chmod(p, 0o600)
    print((stat.S_IMODE(os.stat(p).st_mode) & 0o600) == 0o600)

variante(s) utile(s)

import stat
print(stat.S_IRUSR | stat.S_IWUSR == 0o600)

notes

  • Utilisez stat.S_IMODE pour extraire les bits de mode.
  • Sur Windows, chmod est limité (lecture/écriture uniquement).