运行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.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...