Как запустить sudo, как при использовании RVM - PullRequest
0 голосов
/ 10 октября 2018

Я тестирую библиотеку с именем 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', это вызывает и другую ошибку, потому что packetgenне установлен на моей машине версии ruby.Я использую версию ruby, отличающуюся от предустановленной версии моей машины, благодаря RVM (Ruby Version Mananger).У кого-нибудь есть обходной путь или способ запустить эту программу без sudo?Спасибо!

1 Ответ

0 голосов
/ 10 октября 2018

RVM имеет интеграцию sudo, см. здесь .

По умолчанию, когда вы используете sudo, ваша текущая среда оболочки не передается в созданный ею сеанс, но RVM уже обеспечивает более легкий доступ к вызовам sudo с помощью rvmsudo.Однако значения по умолчанию для sudo очень строги, и вы можете в конечном итоге получить запросы пароля для команд, которые настроены на использование директивы sudo NOPASSWD.

...