在Python中(在2.7及以下版本中尝试过),使用tempfile.NamedTemporaryFile
创建的文件似乎不符合umask指令:
import os, tempfile
os.umask(022)
f1 = open ("goodfile", "w")
f2 = tempfile.NamedTemporaryFile(dir='.')
f2.name
Out[33]: '/Users/foo/tmp4zK9Fe'
ls -l
-rw------- 1 foo foo 0 May 10 13:29 /Users/foo/tmp4zK9Fe
-rw-r--r-- 1 foo foo 0 May 10 13:28 /Users/foo/goodfile
你知道为什么NamedTemporaryFile
不接umask吗?在文件创建期间有什么方法可以做到这一点吗?在
我总是可以解决这个问题os.chmod公司(),但我希望在文件创建过程中能做正确的事情。在
在 如果它可能会对某人有所帮助,我想或多或少地做同样的事情,下面是我使用的代码:
这是一个安全功能。}, line 235 ,因为在使用
NamedTemporaryFile
总是用模式0600
创建的,硬编码在^{chmod
打开它之前,它对您的进程是私有的。没有构造函数参数来更改此行为。在相关问题 更多 >
编程相关推荐