如何设置我正在生成的流程的umask?

时间:2016-03-23 18:21:37

标签: python linux unix filesystems

我有一个Python REST API服务。此服务使用

在内部执行一些脚本
subprocess.Popen(cmd, shell=False, preexec_fn=os.setpgrp, env=self.env, universal_newlines=True,stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)

现在我想设置生成的进程的umask。 我尝试在运行此服务的init脚本中设置umask。但看起来它并没有被服务产生的子进程继承。如果这有所不同,试图在RHEL上完成此操作。谢谢!

1 个答案:

答案 0 :(得分:3)

由于preexec_fn参数似乎对您有用,您也可以使用它来调用os.umask():

def initchildproc():
    os.setpgrp()
    os.umask(400)

subprocess.Popen(cmd, shell=False, preexec_fn=initchildproc, ...)