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

我想我的根需要 bash脚本从IntelliJ / WebStorm运行,当我运行它时要求我inputroot密码。 在脚本中硬编码我的root密码当然是个坏主意。

IntelliJ / WebStorm实际上有一个$提示$macros的原因,这会提示你并使用你的input作为价值。

所以我尝试使用$提示$echo YOURPASSWORD | sudo -S yourcommand echo YOURPASSWORD | sudo -S yourcommand在use-sudo-with-password-as-parameter中描述 。

然后我通过密码和脚本运行到一个sudorun.sh脚本echo -e $1 | sudo -S $2 $3 $4 echo -e $1 | sudo -S $2 $3 $4 (因为echo不能是'程序'行),虽然它在CLI上工作,但无法读取IntelliJ控制台上的echo-stdin。

理想情况下,我希望解决scheme只能在IntelliJ中configuration,不需要在IntelliJ之外进行特定的操作系统configuration更改。

也许还有其他方法来处理这个,所以让即兴!

我也面临同样的问题,但是我在我的开发机器上使用敏感数据,并且删除sudoers的密码要求不是一个选项。

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

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

一旦以这种方式启动WebStorm / PhpStorm,就可以在不提供根凭证的情况下以root用户身份运行脚本。

使用sudoNOPASSWD功能。 向sudoers (通过visudo或类似的)添加一条规则:

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

我发现自己做了很多工作流程,并且遇到了同样的问题。 我不想在我的sudoer权限中打一个洞,我也不想以root身份运行我的IDE。 我找到的一个很好的解决方案是gksudo ,在Ubuntu和其他许多Linux版本中,默认情况下会安装它。 gksudo所做的是允许你提示用户(你自己)用图形覆盖图输入你的密码,就像Ubuntu / KDE / etc一样。 当您需要成为root用户时,请执行更新等操作。

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

编辑工具窗口中简单地:

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