And*_*ham 5 python unix perl file-permissions
我有一个脚本,在运行时,在里面创建一个目录/home/test/
,然后在其中写入一些文件.当我运行此脚本时,它工作正常.但是,当我从perl脚本调用它时
$ret = `/home/..../testscript.py`
Run Code Online (Sandbox Code Playgroud)
它没有权限,因此无法创建文件夹,或者在创建文件夹后无法在其中写入.看起来像Python一样open("/home/test/abcde/file1.txt", "w")
,该文件具有权限-rw-r--r--
我该怎么做才能解决这个问题?有没有办法设置/ home/test以递归方式使所有子目录都具有全局写访问权限?或者更好的解决方案呢?
Bar*_*mar 12
放:
os.umask(0000)
Run Code Online (Sandbox Code Playgroud)
在Python脚本中创建目录之前.如果您无法更改Python脚本,请执行以下操作:
umask(0000)
Run Code Online (Sandbox Code Playgroud)
在调用Python脚本之前的Perl脚本中.
当创建一个新文件或目录时,权限通过取在调用中指定的权限决定creat()
或mkdir()
,然后掩蔽掉了在指定的位umask
.
通常,应用程序在调用函数时指定0666
或0777
权限(取决于它们是否创建了应该可执行的内容).umask
is 的常见值022
,它关闭组和世界写入权限.如果您不希望它们关闭,请使用上述umask
值来保留调用中指定的权限.
归档时间: |
|
查看次数: |
2421 次 |
最近记录: |