我希望我的 * 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外部更改特定的操作系统配置。
也许有其他的方法来处理这个问题,所以让我们即兴发挥!
4条答案
按热度按时间cbeh67ev1#
我也面临着同样的问题,但我在我的开发机器上处理敏感数据,并且删除sudoers的密码要求不是一个选择。
我能够通过使用sudo命令从命令行启动实际的WebStorm应用程序来解决此问题,如下所示:
sudo /Applications/WebStorm.app/Contents/MacOS/webide
以这种方式启动WebStorm/PhpStorm后,您可以使用root访问权限运行脚本,而无需提供root凭据。
mv1qrgav2#
使用
sudo
的NOPASSWD
功能。向sudoers
添加一条规则(通过visudo
或类似的方式):zzlelutf3#
我发现自己自动化了很多工作流程,并遇到了同样的问题。我不想在我的sudoer权限上打一个洞,我也不想以root身份运行我的IDE。我发现的一个很好的解决方案是
gksudo
,在Ubuntu和许多其他Linux变体上,你会发现它是默认安装的。gksudo
所做的是它允许你提示用户(你自己)用图形覆盖输入你的密码,很像Ubuntu/KDE/等。当您需要以root身份执行更新等操作时,请执行。这将提示您提供密码以提升权限,然后以root身份执行给定的命令/程序。
在 * 编辑工具窗口 * 中,只需:
/usr/bin/gksudo
whereis gksudo
查找路径"mongod --fork --config /etc/mongodb.conf; service elasticsearch start"
jbose2ul4#
您可以通过将运行配置创建为
Script text
而不是文件来实现它。然后,您可以将脚本定义为echo $PASSWORD | sudo bash script
。要加载密码,您可以在文件夹中设置direnv,以自动加载所需的.env
文件。PyCharm/WebStorm尊重.env
文件,并在运行命令之前加载它们。