如何从IntelliJ / WebStorm / PhpStorm中的“外部工具”运行sudo脚本?

时间:2012-10-25 21:38:47

标签: linux intellij-idea sudo phpstorm webstorm

我希望 root-requires bash脚本从 IntelliJ / WebStorm 运行,在运行时询问我输入root密码。在脚本中硬编码我的root密码当然是个坏主意。

IntelliJ / WebStorm 实际上有一个$ Prompt $宏,出于这样的原因,它会提示您并将您的输入用作值。

所以我尝试使用 $ Prompt $ 以及 echo YOURPASSWORD | sudo -S yourcommand ,如use-sudo-with-password-as-parameter中所述。

然后我通过passwd&要运行到sudorun.sh脚本echo -e $1 | sudo -S $2 $3 $4的脚本(因为echo不能成为程序行),虽然它在CLI上运行,但它失败了在IntelliJ控制台上读取echo-stdin。

理想情况下,我希望解决方案仅在IntelliJ中配置,并且不需要在IntelliJ之外进行特定的OS配置更改。

也许有其他方法可以解决这个问题,所以让我们即兴发挥!

3 个答案:

答案 0 :(得分:5)

我也遇到了同样的问题,但我在开发机器上处理敏感数据并删除sudoers的密码要求不是一种选择。

我能够通过使用sudo命令从命令行启动实际的WebStorm应用程序来解决此问题,如下所示:

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

以这种方式启动WebStorm / PhpStorm后,您可以运行具有root访问权限的脚本,而无需提供root凭据。

答案 1 :(得分:4)

使用NOPASSWD的{​​{1}}功能。将此类规则添加到sudo(通过sudoers或类似名称):

visudo

答案 2 :(得分:3)

我发现自己自动化了很多工作流程,并遇到了同样的问题。我不想在我的sudoer权限中打一个漏洞,我也不想以root身份运行我的IDE。我发现一个很好的解决方案是gksudo,在Ubuntu和许多其他Linux变种上你会发现它默认安装它。 gksudo的作用是它允许你提示用户(你自己)用图形覆盖输入你的密码,就像Ubuntu / KDE /等。当你需要root用户来执行诸如更新之类的操作时。

然后,这将提示您提供密码以升级权限,然后以root身份执行给定的命令/程序。

编辑工具窗口中,只需:

  1. 计划设置为/usr/bin/gksudo
    • gksudo可能位于不同的路径,请尝试:whereis gksudo找到其路径
  2. 将参数设置为要在引号中执行的所有命令
    • 实施例。 "mongod --fork --config /etc/mongodb.conf; service elasticsearch start"
    • 确保你有报价!
  3. 设置工作目录(如果需要)