我正在编写一个 Oracle EBS 的 Java 程序,由于在不同于 applmgr 的用户上定义的特定权限,该程序需要切换用户。我们采用的方法是创建一个 java 类,该类将在单独的会话中切换用户,然后列出新用户有权访问的文件夹中的文件。
有什么可用的选项吗?
到目前为止,我可以创建两个 shell 脚本文件,然后运行这些 shell 脚本,一个将存储环境变量,另一个将实际切换用户并列出文件。
感谢你的帮助。
您可以更改文件的组权限。你可以启动一个 System.process("su user && cat file" ); 您可以让其他用户使用 cronjob 将文件复制给您...
您可以尝试让 Java 在系统上启动一个本地命令,然后作为该命令的一部分启动另一个程序(远非非常干净,但可能会工作)
查看此 Class 文件以获取有关启动本地命令的示例:
你应该可以使用setuid
- 我希望有一个直接在 Java 中可用的版本,但除此之外,制作你自己的 JNI 代码来做到这一点应该不难。
但是,运行切换用户的命令(例如使用su
or sudo
)然后运行所需的 Java 代码可能更简单。