尝试编写一个能够以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