Когда вы создаете файл с open
, разрешения, указанные в вызове open
, изменяются вашим параметром umask
.umask
определяет биты, которые "замаскированы".В моей системе, похоже, что мой текущий umask
равен 0002
:
$ umask
0002
Это означает, что когда я запускаю код, подобный вашему:
import os
os.open('testfile', flags=(os.O_CREAT), mode=0o777)
я получуСледующее поведение:
$ python filetest
$ ls -l testfile
-rwxrwxr-x. 1 lars lars 0 Nov 20 07:47 testfile
Я могу установить для umask
различные значения для управления разрешениями, применяемыми по умолчанию:
$ umask 022
$ python filetest
$ ls -l testfile
-rwxr-xr-x. 1 lars lars 0 Nov 20 07:49 testfile
Или:
$ umask 077
$ python filetest.py
$ ls -l testfile
-rwx------. 1 lars lars 0 Nov 20 07:50 testfile
Подробнее здесь .