使所有新目录具有777权限

时间:2013-07-19 22:39:25

标签: python perl unix file-permissions

我有一个脚本,在运行时,会在/home/test/内创建一个目录,然后在其中写入一些文件。当我运行此脚本时,它工作正常。但是,当我从带有

的perl脚本调用它时
$ret = `/home/..../testscript.py`

它没有权限,因此无法创建文件夹,或者在创建文件夹后无法在其中写入。看起来当Python open("/home/test/abcde/file1.txt", "w")时,该文件具有权限-rw-r--r--

我该怎么做才能解决这个问题?有没有办法设置/ home / test以递归方式使所有子目录都具有全局写访问权限?或者更好的解决方案呢?

1 个答案:

答案 0 :(得分:12)

把:

os.umask(0000)
在创建目录之前在Python脚本中

。如果您无法更改Python脚本,请输入:

umask(0000)
在调用Python脚本之前,在Perl脚本中

创建新文件或目录时,通过获取调用creat()mkdir()中指定的权限,然后屏蔽umask中指定的位来确定权限。 1}}。

通常,应用程序在调用函数时指定06660777权限(取决于它们是否创建了应该可执行的内容)。 umask的常见值是022,它会关闭群组和世界写入权限。如果您不希望它们关闭,请使用上面的umask值来保留呼叫中指定的权限。