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

hyp*_*ink 3 python unix linux 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)
Run Code Online (Sandbox Code Playgroud)

现在我想设置它所生成的进程的 umask。我尝试在运行此服务的初始化脚本中设置 umask。但看起来它并没有被服务生成的子进程继承。尝试在 RHEL 上完成此操作(如果有效果的话)。谢谢 !

Nor*_*man 5

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

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

subprocess.Popen(cmd, shell=False, preexec_fn=initchildproc, ...)
Run Code Online (Sandbox Code Playgroud)