【问题标题】:Java switch user using su on linux在 Linux 上使用 su 的 Java 切换用户
【发布时间】:2013-08-23 23:23:45
【问题描述】:

我正在编写一个 Oracle EBS 的 Java 程序,由于在不同于 applmgr 的用户上定义的特定权限,该程序需要切换用户。 我们采用的方法是创建一个 java 类,该类将在单独的会话中切换用户,然后列出新用户有权访问的文件夹中的文件。

有什么选择吗?

到目前为止,我可以创建两个 shell 脚本文件,然后运行这些 shell 脚本,一个将存储环境变量,另一个将实际切换用户并列出文件。

感谢您的帮助。

【问题讨论】:

  • 为什么不从一开始就以适当的用户身份运行您的程序?
  • 不确定这是否可行。一旦一个程序被启动,它将拥有该用户的权限......
  • 您的 shell 脚本基本上会提升您的权限,然后以这些提升的权限启动您的程序。所以java仍然不是提供su的媒介

标签: java linux su


【解决方案1】:

您可以更改文件的组权限。你可以启动一个 System.process("su user && cat file" );您可以让其他用户使用 cronjob 将文件复制给您...

【讨论】:

    【解决方案2】:

    您可以尝试让 Java 在系统上启动一个本地命令,然后作为该命令的一部分启动另一个程序(远非非常干净,但可能会工作)

    查看这个类文件以获取有关启动本地命令的示例:

    https://github.com/SnakeDoc/RPi_SerialGPS/blob/master/src/com/vanomaly/rpi/serial/gps/util/System.java

    【讨论】:

      【解决方案3】:

      您应该可以使用setuid - 我希望有一个直接在 Java 中可用的版本,但除此之外,编写自己的 JNI 代码来做到这一点应该不难。

      但是,运行切换用户的命令(例如使用susudo)然后运行所需的Java 代码可能更简单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        • 2014-11-24
        相关资源
        最近更新 更多