嗨,我正在使用ganymed-ssh2 Java库在Linux工作站中成功执行远程命令。
但是现在有一种情况,我需要执行命令,但这需要我输入一些密码…,例如:
sudo /usr/bin/some_process
please enter your password:
我曾经以这种方式实现远程cmd执行:
Session sess = conn.openSession();
sess.execCommand("uname -a && date && uptime && who");
System.out.println("Here is some information about the remote host:");
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();
conn.close();
恐怕无法使用此库执行需要密码的命令。
有人可以给我解决方案或替代方案,以允许这样做?
谢谢!
假设有一个sess.getStdin()
,您应该能够将密码输入sudo命令。
问题内容: 我想从Go执行perforce命令行“ p4”以执行登录工作。“ p4登录”要求用户输入密码。 如何在Go中运行需要用户输入的程序? 以下代码不起作用。 问题答案: 从os / exec.Command文档: 在执行命令之前,设置命令的Stdin字段。
本文向大家介绍使用docker命令不需要敲sudo的操作,包括了使用docker命令不需要敲sudo的操作的使用技巧和注意事项,需要的朋友参考一下 由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作。 如果不想每次使用docker命令的时候还要额外的敲一下
问题内容: 我需要使用Java以root和sudo用户身份执行给定命令。但是,我不确定我可以用来传递密码的方法。有什么方法可以将密码传递给终端? 问题答案: 您可以将sodu全部放在一起,并创建一个shell脚本suid root,然后运行它。 每当调用该脚本时,它将以root身份运行。
有人能给我提示如何处理这种情况吗?我使用的是Ansible2.0,数据库只能从特定的远程主机访问。 谢谢
问题内容: 我想在node.js代码中创建并运行grunt任务以供测试使用。 但这是行不通的。Grunt似乎没有执行任何任务。我几乎可以肯定,有一些API可以在没有命令行的情况下在外部运行grunt任务,但是不知道该怎么做。 有什么办法吗? 问题答案: 您可以。我不知道为什么任何人都需要做这个,因为目前Grunt是一个 命令行工具 。 警告:我不建议以这种方式运行Grunt。 但是这里是:
我正在使用ProcessBuilder执行bash命令: 编辑 gksudo带着最后一次更新回到了Ubuntu13.04。