2012-10-25 1 views
4

Мне нужен мой root-require сценарий bash, который будет запущен от IntelliJ/WebStorm, спрашивая у меня пароль root, когда я его запускаю. Конечно, мой корневой пароль жестко закодирован в скрипте.Как запустить скрипт sudo из «внешних инструментов» в IntelliJ/WebStorm/PhpStorm?

У IntelliJ/WebStorm есть макрос $ Prompt $ для таких причин, который запрашивает и использует ваш ввод как значение.

Так что я попытался с помощью $ Срочная $ вместе с echo YOURPASSWORD | sudo -S yourcommand, как описано в use-sudo-with-password-as-parameter.

Затем я перехожу PASSWD & скрипт для запуска на sudorun.sh сценарий echo -e $1 | sudo -S $2 $3 $4echo не может быть быть линия «программы»), которые, хотя работы по CLI, она не читать эхо-STDIN на консоли IntelliJ.

В идеале, я хотел бы, чтобы решение было настроено исключительно из IntelliJ и не требовало конкретных изменений конфигурации ОС вне IntelliJ.

Возможно, есть и другие способы борьбы с этим, поэтому импровизирует!

+1

Вместо того, чтобы позволить PhpStorm выполнить фактическую команду, я рекомендую написать специальный сценарий оболочки, который будет делать все это и исполнять его, а и только передавать необходимые параметры (путь к проекту/файлу и т. д.). – LazyOne

+0

Извините, это не отвечает основным требованиям: передача sudo pswd. Я хочу связать f.i. alt + b в './mybuild.sh', который по какой-то причине требует sudo. Как мне это сделать ? –

+0

Что я пытался сказать - вызывать 'sudo' (или любую команду, которая должна быть) внутри вашего реального скрипта. Если вы не можете даже запустить свой './Mybuild.sh' из PhpStorm (потому что даже запуск его требует sudo) ... то я не могу здесь помочь. – LazyOne

ответ

4

Используйте функцию NOPASSWDsudo. Добавление правила, как так sudoers (через visudo или аналогичный):

someuser  ALL = NOPASSWD: /usr/bin/interesting_program 
%somegroup ALL = NOPASSWD: /usr/bin/interesting_program 
+1

полезен, но не отвечает на главный вопрос: 'запускать скрипт sudo из« внешних инструментов »' –

+0

Я «нашел другой способ сделать это» под «импровизацией». :) Серьезно, это не касается проблемы? 'java' (« внешний инструмент? ») может вызывать' sudo/usr/bin/interesting_program', и вам больше не нужно возиться с отправкой пароля на 'sudo'. –

+2

Да, это рабочее и общее решение, но оно связано с ОС, а не с IDE, что я бы предпочел. –

5

Я тоже столкнулся с таким же вопросом, но я работаю с конфиденциальными данными на моей машине разработки и удаление требования пароля для sudoers просто ISN» t вариант.

Я был в состоянии решить эту проблему, начав фактическое применение WebStorm из командной строки с помощью команды Sudo следующим образом:

sudo /Applications/WebStorm.app/Contents/MacOS/webide

После WebStorm/PhpStorm запускаются таким образом, вы можете запустить скрипт с корневым доступом без предоставления учетных данных root.

3

Я нахожу, что я автоматизирую много своего рабочего процесса и сталкиваюсь с той же проблемой. Я не хочу пробивать дыру в моих разрешениях sudoer, и я тоже не хочу запускать свою среду IDE с правами root. Хорошее решение, которое я нашел, - gksudo, на Ubuntu и многих других вариантах Linux, вы найдете его установленным по умолчанию. Что делает gksudo, это позволяет вам запрашивать у пользователя (пользователя) ввод пароля с графическим наложением, как Ubuntu/KDE/etc. когда вам нужно быть root для выполнения операции, такой как обновление.

Затем будет предложено предоставить пароль для повышения привилегий, а затем выполнить заданную команду/программу с правами администратора.

В Edit Tool Window просто:

  1. Установите Программа в /usr/bin/gksudo
    • gksudo может располагаться на другом пути, попробуйте: whereis gksudo найти свой путь
  2. Установить параметры для всех команд, которые вы хотите выполнить в котировки
    • Ex. "mongod --fork --config /etc/mongodb.conf; service elasticsearch start"
    • Удостоверьтесь, что у вас есть цитаты!
  3. Установить рабочий каталог (при необходимости)
+0

Сегодня это больше 'gksu'. Установите его с помощью 'sudo apt-get install gksu' – Javarome