os.umask() în Python

Setează masca de permisiuni scoase automat de la fișierele și directoarele noi.

Sintaxă
os.umask(masca)

Ce face os.umask()

Când creezi un fișier, permisiunile cerute (de obicei 0o666 pentru fișiere și 0o777 pentru directoare) sunt reduse cu biții din umask. Cu masca uzuală 0o022, fișierele noi au 0o644. umask(noua) setează masca și returnează valoarea veche; nu există o funcție doar pentru citire.

Parametri

Parametru Descriere
masca Biții de permisiuni eliminați.

Ce returnează

Masca anterioară.

Exemple

Exemplul 1: Fișiere private

import os, stat
veche = os.umask(0o077)
open("privat.txt", "w").close()
os.mkdir("privat_dir")
print(stat.filemode(os.stat("privat.txt").st_mode), stat.filemode(os.stat("privat_dir").st_mode))
os.umask(0o022)
open("public.txt", "w").close()
print(stat.filemode(os.stat("public.txt").st_mode))
os.umask(veche)

Rezultat

-rw------- drwx------
-rw-r--r--

Greșeli frecvente

  • Te aștepți ca open(..., "w") să creeze fișierele cu permisiunile pe care le vrei. Ele depind de umask; setează-le explicit cu os.chmod dacă contează.

Comenzi înrudite