使用RVM时如何运行sudo东西

时间:2018-10-10 19:49:26

标签: ruby rvm sudo

我正在我的计算机上测试名为packetgen的库。问题不在于图书馆本身。我试图将一个数据包注入网络中只是为了进行简单的测试。但是,当我注入它时,它会引发错误:

Traceback (most recent call last):
    3: from packet.rb:5:in `<main>'
    2: from /home/COM-COM/.rvm/gems/ruby-2.5.1/gems/packetgen-2.8.6/lib   /packetgen/packet.rb:240:in `to_w'
    1: from /home/COM-COM/.rvm/gems/ruby-2.5.1/gems/packetgen-2.8.6/lib/ packetgen/header/eth.rb:95:in `to_w'
/home/COM_COM/.rvm/gems/ruby-2.5.1/gems/packetgen-2.8.6/lib/packetgen /header/eth.rb:95:in `open_live': wlp2s0: You don't have permission to capture on that device (socket: Operation not permitted) (RuntimeError)

我需要超级用户特权才能捕获或注入网络上的数据包,但是如果我运行sudo 'ruby packet.rb'会引发错误,并且会出现其他错误,因为我的计算机版本的ruby上没有安装packetgen。我运行的红宝石版本与计算机的RVM(Ruby Version Mananger)的预装版本不同。有没有人可以解决此问题或无需sudo来运行此程序的方法?谢谢!

1 个答案:

答案 0 :(得分:1)

RVM具有sudo集成,请参见here

  

默认情况下,当使用sudo时,当前的shell环境不是   传递给它创建的会话,但RVM已经允许   使用rvmsudo可以更轻松地访问sudo调用。但是,sudo的默认值   非常严格,您可能最终会收到密码提示   设置为使用sudo NOPASSWD指令的命令。