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

mwecs4sa  于 11个月前  发布在  Storm
关注(0)|答案(4)|浏览(123)

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

IntelliJ/WebStorm实际上有一个$Prompt$宏,它会提示你并将你的输入作为一个值。

因此,我尝试使用 $Prompt$ 沿着 * echo YOURPASSWORD | sudo -S yourcommand *,如use-sudo-with-password-as-parameter中所述。
然后我传递passwd & script来运行sudorun.sh脚本echo -e $1 | sudo -S $2 $3 $4(因为echo不能是'program'行),尽管它在CLI上工作,但它无法在IntelliJ控制台上读取echo-stdin。
理想情况下,我希望解决方案仅从IntelliJ内部配置,而不需要在IntelliJ外部更改特定的操作系统配置。
也许有其他的方法来处理这个问题,所以让我们即兴发挥!

cbeh67ev

cbeh67ev1#

我也面临着同样的问题,但我在我的开发机器上处理敏感数据,并且删除sudoers的密码要求不是一个选择。
我能够通过使用sudo命令从命令行启动实际的WebStorm应用程序来解决此问题,如下所示:
sudo /Applications/WebStorm.app/Contents/MacOS/webide
以这种方式启动WebStorm/PhpStorm后,您可以使用root访问权限运行脚本,而无需提供root凭据。

mv1qrgav

mv1qrgav2#

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

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

zzlelutf3#

我发现自己自动化了很多工作流程,并遇到了同样的问题。我不想在我的sudoer权限上打一个洞,我也不想以root身份运行我的IDE。我发现的一个很好的解决方案是gksudo,在Ubuntu和许多其他Linux变体上,你会发现它是默认安装的。gksudo所做的是它允许你提示用户(你自己)用图形覆盖输入你的密码,很像Ubuntu/KDE/等。当您需要以root身份执行更新等操作时,请执行。
这将提示您提供密码以提升权限,然后以root身份执行给定的命令/程序。
在 * 编辑工具窗口 * 中,只需:

  • 设置程序/usr/bin/gksudo
  • gksudo可能位于不同的路径,请尝试:whereis gksudo查找路径
  • 将所有要执行的命令的参数设置为 * 引号 *
  • 例如"mongod --fork --config /etc/mongodb.conf; service elasticsearch start"
  • 确保你有报价!
  • 设置工作目录(如果需要)
jbose2ul

jbose2ul4#

您可以通过将运行配置创建为Script text而不是文件来实现它。然后,您可以将脚本定义为echo $PASSWORD | sudo bash script。要加载密码,您可以在文件夹中设置direnv,以自动加载所需的.env文件。PyCharm/WebStorm尊重.env文件,并在运行命令之前加载它们。

相关问题