net-ssh无法执行命令

时间:2014-05-22 20:48:53

标签: ruby ssh net-ssh

为什么net-ssh无法执行useradd命令?

这是我的net-ssh代码:

Net::SSH.start(host, user, forward_agent: true) do |ssh|
  ssh.open_channel do |ch|
    ch.request_pty
    ch.exec "mkdir /tmp/unicorn"
    ch.exec "sudo groupadd unicorn"
    ch.exec "sudo chgrp unicorn /tmp/unicorn"
    ch.exec "sudo useradd application" do |ch, success|
      if success
        puts 'command worked'
      else
        puts 'command failed'
      end
    end
  end
end

useradd命令外,所有命令都有效。我可以登录并运行useradd命令并添加用户。

谢谢, 埃里克

1 个答案:

答案 0 :(得分:1)

我会修改你的脚本以添加命令

puts ch.exec "sudo which useradd"

查看它是否是路径问题。

我还要添加

ch.exec 'sudo useradd application 1>/tmp/useradd.log 2>&1'

然后查看目标框以查看/tmp/useradd.log文件中是否记录了任何错误。