6

ルートを必要とするbash スクリプトをIntelliJ/WebStormから実行して、実行時にルート パスワードを要求するようにしたいと考えています。root パスワードをスクリプトにハードコーディングするのは、もちろん悪い考えです。

IntelliJ/WebStormには、実際にはこのような理由で $Prompt$ マクロがあり、プロンプトを表示して入力を値として使用します。

そこで、 use-sudo-with-password-as-parameter で説明されているように、$ Prompt$を使用してみました。echo YOURPASSWORD | sudo -S yourcommand

次に passwd & script を渡して実行するスクリプトを実行しsudorun.shますecho -e $1 | sudo -S $2 $3 $4( echo「プログラム」行にすることはできないため)。これは CLI で動作しますが、IntelliJ コンソールで echo-stdin を読み取ることができません。

理想的には、ソリューションを IntelliJ 内からのみ構成し、IntelliJ の外部で特定の OS 構成の変更を必要としないようにしたいと考えています。

おそらくこれに対処する他の方法があるので、即興でやってみましょう!

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 パーミッションに穴をあけたくありませんし、IDE を root として実行したくもありません。私が見つけた良い解決策はgksudo、Ubuntuおよび他の多くのLinuxバリアントでは、デフォルトでインストールされていることがわかります。gksudoUbuntu/KDE/etc のように、ユーザー (自分自身) にグラフィック オーバーレイを使用してパスワードを入力するように求めることができます。更新などの操作を実行するためにルートになる必要がある場合に実行します。

これにより、パスワードを入力して特権をエスカレートし、特定のコマンド/プログラムをルートとして実行するように求められます。

編集ツール ウィンドウで次のようにします。

  1. プログラムを_/usr/bin/gksudo
    • gksudo は別のパスにある可能性があります。whereis gksudoそのパスを見つけてください:
  2. 実行するすべてのコマンドにパラメーターを引用符で囲んで設定します
    • 元。"mongod --fork --config /etc/mongodb.conf; service elasticsearch start"
    • あなたが引用符を持っていることを確認してください!
  3. 作業ディレクトリを設定します (必要な場合)
于 2014-09-04T08:01:38.820 に答える