Java 部署war文件时设置unix权限的更好方法

Java 部署war文件时设置unix权限的更好方法,java,oracle,unix,oracle9i,Java,Oracle,Unix,Oracle9i,我们有一个供应商应用程序,在那里我们下载他们的更新并部署war文件。我们正在运行oracle application server 9i的unix应用程序服务器上部署war文件。我相信当我们部署war文件时,我们会删除以前的安装,然后部署新的war文件。部署war文件时,有时必须手动设置类和其他文件的unix文件权限。我们这样做是为了让所有unix用户ID都可以运行他们需要的进程。有更好的方法吗?我对OAS不太了解。。。但我假设从war文件解包的文件将由运行OAS的用户拥有和访问。这不对吗?你能

我们有一个供应商应用程序,在那里我们下载他们的更新并部署war文件。我们正在运行oracle application server 9i的unix应用程序服务器上部署war文件。我相信当我们部署war文件时,我们会删除以前的安装,然后部署新的war文件。部署war文件时,有时必须手动设置类和其他文件的unix文件权限。我们这样做是为了让所有unix用户ID都可以运行他们需要的进程。有更好的方法吗?

我对OAS不太了解。。。但我假设从war文件解包的文件将由运行OAS的用户拥有和访问。这不对吗?你能解释一下到底发生了什么或者为什么这是一个问题吗? 下面是您的补充意见。。。 听起来您的安全模型并不完全正确:您将OAS及其数据与dba组关联,但OAS的某些依赖项(及其数据)不在该组中。我有几点建议:

  • 为OAS及其依赖项创建一个新组,并评估dba组中的哪些用户也需要在该组中。如果需要,将OAS用户也保留在dba组中。
  • 使用等待部署完成并更改权限的脚本部署war文件。
  • 修复您的依赖关系。听起来war文件中的一些类应该部署在其他地方——应用程序上下文之外——并在那里引用。然后,他们可以拥有新的更合适的组,您可以将批处理用户和OAS用户添加到该组中。
    根据您对Steven答案的评论,为部署war文件的用户将
    umask
    设置为
    000
    如何?(这可能是oracleas,umask变量通常在该用户的.profile中设置。)umask(现在可能设置为027)屏蔽了文件权限,000不会屏蔽任何内容,从而导致其他用户的权限。

    仅给出一些提示: 无法在war/jar中设置文件权限

    权限取决于oracleas用户的umask。改变这个,然后 你会准备好的


    有没有办法将war打包?

    war文件已部署,文件由用户id oracleas拥有,组为dba。部署的文件权限为750(rwxr-x---)。我们有一个unix id r6schd,它不是dba组的一部分,dba组运行的批处理过程是部署的应用程序的一部分。我们必须将已部署应用程序的目录权限设置为755(rwxr-xr-x),并根据需要将其下方的应用程序文件设置为755。我知道我们可以将r6schd用户id添加到dba组,但应用程序dba不想这样做。因此,我正在寻找一种更好的方法,以便在deploy.umask 000上正确设置权限。这不是一个好主意。你至少应该掩饰一下小组/其他人的写作。@Steven,是的,一般来说你是对的。考虑到他的问题(他正在寻找另一种方法将文件chmod回拥有其他人的权限),这是找到解决方案或缩小可能性的第一步。不管怎样,我认为没有理由投反对票。谢谢你的回复。为什么要打包war文件?