微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行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.jb51.cc/bash/385933.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐