我有一个脚本,运行时会在其中创建一个目录/home/test/
然后在其中写入一些文件。当我运行这个脚本时,它工作得很好。但是,当我从 perl 脚本调用它时
$ret = `/home/..../testscript.py`
它没有权限,因此无法创建该文件夹,或者创建后无法在其中写入。看起来就像 Python 做的那样open("/home/test/abcde/file1.txt", "w")
,该文件有权限-rw-r--r--
我能做些什么来解决这个问题?有没有办法设置 /home/test 以递归方式使所有子目录具有全局写入访问权限?或者也许有更好的解决方案?
Put:
os.umask(0000)
在创建目录之前的 Python 脚本中。如果您无法更改 Python 脚本,请输入:
umask(0000)
在 Perl 脚本中调用 Python 脚本之前。
创建新文件或目录时,通过调用中指定的权限来确定权限creat()
or mkdir()
,然后屏蔽掉指定的位umask
.
通常,应用程序指定0666
or 0777
他们调用该函数时的权限(取决于他们是否正在创建应可执行的内容)。一个共同的价值观umask
is 022
,这会关闭组和世界写入权限。如果您不想关闭它们,请使用上面的命令umask
值以保留调用中指定的权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)