我在下面做了一个小测试任务:
set :user, "user"
set :password, "password"
set :root_password, "root password"
set :use_sudo, false
role :srv, "exmaple.com"
task :show_info do
run "iptables -L", :shell => "su -" do |channel, stream, data|
channel.send_data("#{root_password}\n")
end
end
这个服务器不允许我使用sudo
,所以我必须以普通用户身份登录,然后成为 root。
我也尝试surun
从这篇文章中创建,虽然它对我没有帮助...... :(
有人可以告诉我在 Capistrano 切换到 root 后运行命令的有希望的方法吗?
提前致谢。
PS添加了输出日志:
$ cap show_info
* executing `show_info'
* executing "iptables -L"
servers: ["example.com"]
[example.com] executing command
command finished in 000ms
failed: "su - -c 'iptables -L'" on example.com