6
votes

Comment puis-je exécuter un script sudo à partir de "Outils externes" dans Intellij / WebSorm / phpstorm?

J'aimerais que mon besoin de racine Bash Script soit exécuté à partir de Intellij / WebSorm , me demandant le mot de passe root quand je l'exécute. Avoir mon mot de passe root est corrigé dans le script, c'est une mauvaise idée bien sûr.

Intellij / WebSorm a en fait une macro $ invite $ pour des raisons telles que celles-ci, qui vous invite et utilise votre entrée comme valeur.

Alors j'ai essayé d'utiliser $ invite $ $ avec echo Yourpassword | sudo -s yourcommand comme décrit dans Utilisez-sudo-avec -password-comme-paramètre .

Puis je passe passwd & script pour exécuter à un sudorun.sh script echo -e $ 1 $ | sudo -s $ 2 $ 3 $ 4 (car echo ne peut pas être la ligne "Programme") qui, bien que fonctionne sur le CLI, il ne lisait pas Echo-Stdin sur la console Intellij.

Idéalement, je voudrais que la solution soit configurée uniquement à partir de Intellij et ne nécessite pas de changements de configuration spécifiques à l'extérieur de Intellij.

Peut-être qu'il y a d'autres moyens de faire face à cela, alors improv improvère!


5 commentaires

Au lieu de permettre à PHPSTORT d'exécuter la commande réelle, je vous recommande de rédiger un script shell personnalisé qui fera tous ces éléments et l'exécutera à la place et ne transmet que les paramètres requis (chemin vers le projet / fichier en question, etc.).


Désolé, cela ne répond pas à l'exigence principale: passer de Sudo PSWD. Je veux lier f.i. alt + b à './mybuild.sh' qui pour une raison quelconque nécessite sudo. Comment je fais ça ?


Ce que j'essayais de dire - invoquer sudo (ou quelle que soit la commande qu'il doit être) dans votre script actuel. Si vous ne pouvez même pas lancer votre ./ mybuild.sh de phpstorm (parce que même le lancer, il nécessite sudo) ... alors je ne peux pas vraiment aider ici.


Même si vous utilisez sudo à l'intérieur du script, comment suggéreriez-vous de passer le PSWD de l'IDE lorsqu'il l'invoque?


Mon idée était que cela sera demandé à l'intérieur du script et non passé de l'IDE.


3 Réponses :


4
votes

Utilisez la fonction NOPASSWD de sudo . Ajoutez une règle comme si sudoers (via visuo ou similaire): xxx


3 commentaires

utile, mais ne répondant pas à la question principale: Exécutez un script sudo à partir de "Outils externes"


Je trouvais une autre façon de le faire "en" improvisation ". :) Sérieusement, cela ne concerne-t-il pas le défi? java ("l'outil externe?") peut appeler sudo / usr / bin / intéressant_program et vous n'avez plus besoin de violon avec l'envoi d'un mot de passe à sudo .


Oui, c'est une solution de travail et générique, mais elle est liée au système d'exploitation au lieu de l'IDE, ce que je préférerais.



5
votes

I, moi aussi, fait face au même problème, mais je travaille avec des données sensibles sur ma machine de développement et que vous supprimez la nécessité de mot de passe pour les Sudoers n'est tout simplement pas une option.

J'ai pu résoudre ce problème en lançant l'application de la zone Web réelle de la ligne de commande à l'aide de la commande sudo comme suit:

sudo /applications/webstorm.app/contents/macos/webideleight/code>

Une fois que WebStorm / Phpstorm est lancé de cette façon, vous pouvez exécuter un script avec un accès root sans fournir des informations d'identification racine.


0 commentaires

3
votes

Je me trouve automatisé beaucoup de mon flux de travail et à courir dans le même problème. Je ne veux pas frapper un trou dans mes autorisations de sudoer et je ne veux pas courir mon IDE en tant que root non plus. Une bonne solution que j'ai trouvée est gksudo , sur Ubuntu et de nombreuses autres variantes Linux, vous le trouverez installé par défaut. Qu'est-ce que gksudo est-ce que cela vous permet d'inviter l'utilisateur (vous-même) pour entrer votre mot de passe avec une superposition graphique, un peu comme Ubuntu / KDE / etc. faire lorsque vous devez être root pour effectuer une opération telle qu'une mise à jour.

Cela vous invitera ensuite à fournir votre mot de passe pour escalader le privilège, puis exécutez une commande / programme donnée en tant que root.

dans la fenêtre Edit Tool simplement:

  1. Définissez le programme à / usr / bin / gksudo
    • Gksudo peut être situé sur un chemin différent, essayez: où gksudo pour trouver son chemin
    • Définit les paramètres sur toutes les commandes que vous souhaitez exécuter dans Citations
      • ex. "Mongod - Fork --Config /etc/mongodb.conf; Service Elasticsearch Démarrer"
      • Assurez-vous que vous avez les citations!
      • Définir un répertoire de travail (si nécessaire)

1 commentaires

Aujourd'hui, c'est plus gksu . Installez-le à l'aide de sudo apt-get installer gksu