我希望 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配置更改。
也许有其他方法可以解决这个问题,所以让我们即兴发挥!
答案 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身份执行给定的命令/程序。
在编辑工具窗口中,只需:
/usr/bin/gksudo
whereis gksudo
找到其路径"mongod --fork --config /etc/mongodb.conf; service elasticsearch start"