以不同的用户身份从Java运行UNIX命令

以不同的用户身份从Java运行UNIX命令,第1张

概述以不同的用户身份从Java运行UNIX命令

试图编写一个能够运行UNIX命令的Java程序作为另一个UNIX用户。 我有用户的密码,我知道我想运行的命令,但命令必须以该用户身份运行 – 所以我必须先以该用户身份login。

例如:假设我们有一个用户jim,他想查看bob的主目录中的内容,并且(无论出于何种原因)jim可以执行ls,而bob不能。 我们目前正在login作为鲍勃@H_404_4@ 。 以下是我们可以做的事情:

bob@host$ su jim && ls ~bob

问题是,我们得到了吉姆的密码提示。 由于这是从一个Java程序运行,即

Process p = Runtime.getRuntime().exec("su jim && ls ~bob");

我们得到提示inputjim的密码并挂断电话。 我们知道吉姆的密码 。 但是,我不能进入它。

如何更改MysqL的root密码

在linux上添加bash脚本来创build用户

如何从Active Directory获取用户密码到期date?

如何影响python内buildpwd模块

windows 8的地铁 – 如何使密码文本框?

另外,我们不能使用Expect脚本(没有安装它),我们不能成为超级用户。 我也研究过使用SSH来尝试这个,因为我们可以在技术上做到这一点

bob@host$ ssh jim@host "ls ~bob"

但是这也不起作用,因为我没有权限设置无密码的SSH。

我最后的努力是尝试使用Java库的SSH库,因为Java程序可以使用密码,我可以用这个密码login(并执行正确的命令)。 但是因为我将要在同一个主机上运行,​​所以看起来好像过火了。

有什么build议么?

PS:Java版本1.4.2,不能升级; AIX UNIX 5.3。

ssh无密码两台电脑一样的networking

批处理脚本 – 访问windows Credential Manager密码(或者如何encryption和使用密码)

encryption开放源码桌面应用程序的磁盘密码

Microsoft Crypto API禁用使用RSAES-OAEP密钥传输algorithm

SALT在密码后面或之前是在哪里?

安装sudo,让用户运行在/ etc / sudoers中输入的Java程序,并使用sudo -u jim ls ~bob 。

问题解决了。 使用Jsch( http://www.jcraft.com/Jsch/ )以已知的用户名和密码SSH连入服务器,并执行命令。 谢谢你的建议!

可能是Expect的Java实现? ExpectJ出现时,谷歌搜索,但我找不到有关1.4.2下运行的任何文档。

你有没有尝试重定向sudo命令输入和写入。 我有一段时间没有使用Java,但我相信有一种方法来获取输入流并写入它。 你可以用它来写一个新的密码,sudo或su应该接受密码。

使用getinputStream()并写出你的密码。

su jim -c ls ~Bob

也许这将工作:

Process process = Runtime.getRuntime().exec("su jim && ls ~bob"); OutputStream standardinput = process.getoutputStream(); Writer standardinputWriter = new OutputStreamWriter(standardinput); standardinputWriter.write("passwordn"); standardinputWriter.close();

我不确定这个代码:

Process p = Runtime.getRuntime().exec("su jim && ls ~bob");

将在shell中执行,需要评估&&,这是一个shell命令(/ bin / sh)。 你应该通过su命令行来传递命令“ls〜bob”。 就像是:

su jim -c 'ls ~bob'

总结

以上是内存溢出为你收集整理的以不同的用户身份从Java运行UNIX命令全部内容,希望文章能够帮你解决以不同的用户身份从Java运行UNIX命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存