加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:39:46 所属栏目:安全 来源:网络整理
导读:尝试编写一个能够以UNIX用户身份运行UNIX命令的 Java程序.我有用户的密码,我知道我想要运行的命令,但该命令必须以该用户身份运行 – 因此我必须先以该用户身份登录. 例如:说我们有一个用户,jim,谁想要看到bob的主目录,以及(无论什么原因)jim可以访问执行ls
尝试编写一个能够以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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读