2024-03-28 20:53:42 发布
网友
我想用Jython运行Python脚本。
结果显示正确,但同时出现一条警告消息,“sys package mgr*:无法创建包缓存目录”
我怎样才能解决这个问题?
提前谢谢~~~
诚然,让目录成为可写目录会让问题“消失”,然而,它带来了一个巨大的安全漏洞。任何人都可以将代码引入到现在世界上可写的目录中,该目录将在用户的jpython环境中执行。
将cachedir设置为skip可能会导致性能下降(为什么要实现缓存方案而不是提高性能)。
相反,我做了以下事情:
我创建了一个新组(在我的例子中是eclipse,但它可能是jpython)。我将jpython的用户添加到该组中。
$ sudo groupadd eclipse
然后,我将eclipse插件文件夹及其子文件夹的组更改为“eclipse”。
/opt/eclipse/plugins $ sudo chgrp -R eclipse *
然后我更改了组权限,如下所示
/opt/eclipse/plugins $ sudo chmod -R g+w * /opt/eclipse/plugins $ find * -type d -print | sudo xargs chmod g+s
这增加了组可写,并递归地设置所有目录上的S_GID位。最后一位导致创建的新目录与其父目录具有相同的组id。
最后一点是将eclipse用户的umask设置为007。
$ sudo vi /etc/login.def
将UMASK更改为007(从022)。 乌马斯克=007
1)更改权限以允许写入错误消息中的目录。
2)通过设置python.cachedir.skip = true
python.cachedir.skip = true
您可以阅读以下内容:
http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#module-search-path-compilation-and-loading
为了进一步的了解。
通过在启动jython时设置“python.cachedir”选项,可以将缓存目录的位置更改为具有读写权限的位置,例如:
jython -Dpython.cachedir=*your cachedir directory here*
或:
java -jar my_standalone_jython.jar -Dpython.cachedir=*your cachedir directory here*
您可以在此处阅读python.cachedir选项: http://www.jython.org/archive/21/docs/registry.html
诚然,让目录成为可写目录会让问题“消失”,然而,它带来了一个巨大的安全漏洞。任何人都可以将代码引入到现在世界上可写的目录中,该目录将在用户的jpython环境中执行。
将cachedir设置为skip可能会导致性能下降(为什么要实现缓存方案而不是提高性能)。
相反,我做了以下事情:
我创建了一个新组(在我的例子中是eclipse,但它可能是jpython)。我将jpython的用户添加到该组中。
然后,我将eclipse插件文件夹及其子文件夹的组更改为“eclipse”。
然后我更改了组权限,如下所示
这增加了组可写,并递归地设置所有目录上的S_GID位。最后一位导致创建的新目录与其父目录具有相同的组id。
最后一点是将eclipse用户的umask设置为007。
将UMASK更改为007(从022)。 乌马斯克=007
1)更改权限以允许写入错误消息中的目录。
2)通过设置
python.cachedir.skip = true
您可以阅读以下内容:
http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#module-search-path-compilation-and-loading
为了进一步的了解。
通过在启动jython时设置“python.cachedir”选项,可以将缓存目录的位置更改为具有读写权限的位置,例如:
或:
您可以在此处阅读python.cachedir选项: http://www.jython.org/archive/21/docs/registry.html
相关问题 更多 >
编程相关推荐