sudo:ruby:ssh之后找不到命令

比延德拉

我正在使用ec2实例,并尝试在ssh到另一个实例后在另一个实例上执行ruby脚本。我有一个ruby脚本来更新配置文件,所以我需要以超级用户身份运行该脚本。当我在该实例上手动运行脚本时sudo ruby recreate-532d01c.rb,出现的错误是

sudo: ruby: command not found

例如,运行没有root权限的简单脚​​本即可。ruby file_1.rb

使用rvmsudo代替sudo会执行带有警告的脚本,

ubuntu@ip-10-0-0-111:~$ rvmsudo ruby recreate-82bb000012.rb 
Warning: can not check `/etc/sudoers` for `secure_path`, falling back to call via `/usr/bin/env`, this breaks rules from `/etc/sudoers`. Run:

    export rvmsudo_secure_path=1

to avoid the warning, put it in shell initialization file to make it persistent.

In case there is no `secure_path` in `/etc/sudoers`. Run:

    export rvmsudo_secure_path=0

to avoid the warning, put it in shell initialization file to make it persistent.

我尝试从要测试的实例之一的Rails控制台执行以下命令,但无法将ruby识别为命令

1.9.3-p545 :002 > system("ssh -i /home/ubuntu/.ssh/own_key.pem ubuntu@**.***.***.** ruby execute-52d.rb")
bash: ruby: command not found

我尝试了通过Web的可能解决方案,但无法解决该问题。我为一个旧的aws帐户运行了相同的配置,这是一个新创建的帐户。不知道是否可能以任何方式出现此问题,因为当前ec2实例默认情况下属于vpc并在2013年12月之后进行了一些更改

芒登

您收到的错误表明该错误ruby不在sudo中$PATH要解决此问题,您要么需要正确导出环境,要么:

sudo -E ruby

或者,只需使用完整路径。type ruby以常规用户身份运行,并将其与结合使用sudo例如:

$ type ruby
ruby is /usr/bin/ruby
$ sudo /usr/bin/ruby

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章