运行UNIX命令作为不同的用户,从Java

前端之家收集整理的这篇文章主要介绍了运行UNIX命令作为不同的用户,从Java前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试编写一个能够以UNIX用户身份运行UNIX命令的 Java程序.我有用户的密码,我知道我想要运行的命令,但该命令必须以该用户身份运行 – 因此我必须先以该用户身份登录.

例如:说我们有一个用户,jim,谁想要看到bob的主目录,以及(无论什么原因)jim可以访问执行ls而bob没有.我们目前以鲍勃身份登录.这是我们(可以)做的:

bob@host$su jim && ls ~bob

问题是,我们收到jim的密码提示.由于这是从Java程序运行,即

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

我们得到提示输入jim的密码并挂断.我们知道jim的密码但是,我无法输入.

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

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

但是由于我没有设置无密码SSH的权限,因此也无效.

我的最后一个努力是尝试使用Java库的Java库,因为Java程序可以使用密码,我可以使用这个登录(并执行正确的命令).但是,由于我要在同一台主机上运行,​​所以看起来像是过度杀伤力.

有什么建议么?

P.S:Java版本1.4.2,无法升级; AIX UNIX 5.3.

安装sudo,让用户在/ etc / sudoers中输入有关命令的Java程序,并使用sudo -u jim ls〜bob.
原文链接:https://www.f2er.com/bash/385933.html

猜你在找的Bash相关文章