在 Java JSch 程序中使用 'become' 命令访问受限目录



与unix服务器一起工作...我的要求是读取unix服务器上/a/b/c/node01/d.ear位置上的文件的名称,并且我通过Java程序进行了同样的操作。问题在于目录a是一个限制目录,仅适用于某些用户。在UNIX侧,我首先发布了become命令,例如become a,然后提供密码,然后使用cd命令,然后到达d.ear目录,然后查看文件的名称。

我该如何通过Java程序完成所有这些?

我不介意我的Java程序是否调用了访问限制目录的Shell脚本,然后访问d.ear并获取文件的名称并将其返回给Java程序。我们有这样做的方法吗?也许从Java程序中发出键入命令,并在调用脚本时以参数为参数,该密码在命令命令后询问?

这种方法可行吗?我是Unix命令和JSCH库的新手。请提供代码或任何其他替代解决方案...

谢谢!!!

正如我已经建议您的那样,您的become命令似乎以相同的方式(从接口/API的角度来看(与常见的 *NIX susudo

因此,使用与这些解决方案相同的解决方案。在堆栈溢出上有很多问题,覆盖了使用JSCH的su/sudo的使用。

甚至还有一个官方的JSCH示例Sudo.java
http://www.jcraft.com/jsch/examples/sudo.java.html

简而言之:

  • 执行become命令
  • 将密码输入其输入
  • 假设become启动了一个新的外壳(作为susudo DO(,您可以将要在高架环境中执行的命令输入到become输入(与密码一样(。
  • >

最新更新