shr*_*ddd 10 python permissions file
在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
Run Code Online (Sandbox Code Playgroud)
知道为什么NamedTemporaryFile
不拿起umask吗?在文件创建过程中有没有办法做到这一点?
我总是可以使用os.chmod()来解决这个问题,但是我希望在文件创建过程中做出正确的事情.
Fre*_*Foo 28
这是一项安全功能.将NamedTemporaryFile
始终与模式创建0600
,在硬编码tempfile.py
,线235,因为它是专用于你的过程,直到你打开它chmod
.没有构造函数参数可以更改此行为.
Pie*_*rre 13
如果它可以帮助某人,我想做或多或少相同的事情,这是我使用的代码:
import os
from tempfile import NamedTemporaryFile
def UmaskNamedTemporaryFile(*args, **kargs):
fdesc = NamedTemporaryFile(*args, **kargs)
umask = os.umask(0)
os.umask(umask)
os.chmod(fdesc.name, 0o666 & ~umask)
return fdesc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4154 次 |
最近记录: |