6

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

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

所以我尝试使用$Prompt$以及use-sudo-with-password-as-parameterecho YOURPASSWORD | sudo -S yourcommand中的描述。

然后我将 passwd & script 传递给一个sudorun.sh脚本echo -e $1 | sudo -S $2 $3 $4(因为echo不能是“程序”行),虽然它可以在 CLI 上运行,但它无法在 IntelliJ 控制台上读取 echo-stdin。

理想情况下,我希望仅在 IntelliJ 内配置解决方案,而不需要在 IntelliJ 之外更改特定的操作系统配置。

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

4

3 回答 3

5

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

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

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

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

于 2013-12-17T02:20:31.897 回答
4

使用 的NOPASSWD功能sudo。将这样的规则添加到sudoers(通过visudo或类似):

someuser      ALL = NOPASSWD: /usr/bin/interesting_program
%somegroup    ALL = NOPASSWD: /usr/bin/interesting_program
于 2012-10-26T03:47:42.763 回答
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. 设置工作目录(如果需要)
于 2014-09-04T08:01:38.820 回答