【发布时间】:2017-01-27 08:08:08
【问题描述】:
我在使用 Ruby 通过 SSH 连接运行 sudo 命令时遇到问题:
require 'net/ssh'
Net::SSH.start("myserver.com", "login", :password => "pass") do |ssh|
test = ssh.exec! 'sudo -iu admin /folder/script.sh'
puts test
接下来看到的结果:“sudo: sorry, you must have a tty to run sudo\n”
但是当我运行这个命令时:
sudo -iu admin /folder/script.sh
在 PUTTY 中,使用密码“pass”连接到服务器“myserver.com”。在这种情况下,sudo 命令运行成功并完成。
如何在带有 TTY 的 Ruby 脚本中运行这个 sudo 命令?
【问题讨论】:
-
我想你可以通过
request_pty申请终端 -
我不认为这是完全重复的:在那个问题中,SSH 挂起。在这个问题中,结果是“You must have a TTY to run sudo”。
标签: ruby-on-rails ruby ssh putty tty