Я пытаюсь установить umask с помощью модуля os. Обратите внимание, что мой обычный набор umask в моем ~/.profile равен umask 0027.
В оболочке bash
umask 0022
позволит создать файл с разрешениями
-rw-r--r--
Однако, когда мы импортируем модуль os и сделать это:
os.umask(0022)
[do some other code here that creates a file]
Я получаю разрешения
----------
Во-первых,как заставить os.umask (mask )вести себя как umask в оболочке?
Во-вторых, какова логика между различием между ними?
Примечание. :Я попытался преобразовать 0022 в десятичное число на случай, если ожидается десятичное число, выполнив :
os.umask(18)
, но это дало разрешения
-----w--w-
Также обратите внимание, я пробовал
os.umask(00022)
и
os.mask(0o0022)
, которые не работать либо.