Executer script en tant que

Slt all,
Je voulais faire un scprit pour executer d’autres scripts sur une autre machines … je suis sur un PI4 avec l’image jeedom … j’ai donc fait un échange de clef ssh entre mes 2 machines (jeedom et autre serveur) pour bypasser le passage du mdp … tout fonctionne bien si j’execute manuellement … mais lorsque je passe par le plugin script cela ne fonctionne plus car le script est executé par www-data … comment gérez vous cette problématique ?
@chris94440

Sur le market tu trouvera Monitoring (monitoring2)
qui correspond a ton besoins

Merci @olive je vais regarder

Je vois pas comment executer d autres scripts avec ce plugin… je vais jouer avec le fichier des sudoers je pense

creer un équipement su ip de la machine en question
puis creer des commandes bash sur la machine en question

Lol pardon c est monitoring2 … j ai le 1 d installe j ai pas fait attention …merci … je me.replanche dessus alors

Oui le 2 n’a rien a voir avec le 1

edit
c’est ton code postal 94440 si oui on est pas loin

Yes c est bien mon cp … je suis de villecresnes… tu es d ou ??

tu traverse la foret par l’étoile je suis de l’autre coté :wink:

Excellent!!!
A l occase faudra se faire une ptite rencontre

:sunglasses: ça marche

1 « J'aime »

Tu trouveras dans /var/www/html/core/repos/samba.repo.php un exemple de commande lancée via un sudo pour avoir les droits root

1 « J'aime »

Bon je déterre mon sujet … je m’y étais pas remis avant … :thinking:
Je suis passé par une solution plus simple pour moi … :slight_smile: … échanges de clef privé / public entre le user www-data et le serveur distant … puis execution des scripts via scénario …:slight_smile:

  1. se connecter en ssh sur le jeedom et passer en root (sudo -i) … taper le mdp root
  2. se placer en tant que www-data : su -l www-data -s /bin/bash
  3. générer les clefs ssh … ssh-keygen
  4. échanger les clef avec le serveur distant : cat .ssh/id_rsa.pub | ssh -p portServerDistant user@ipServerDistant ‹ cat > .ssh/authorized_keys ›
    Le mdp du compte user du serveur distant vous ait demandé …

A partir de ce moment là on peut se connecter en ssh au serveur distant sans mdp.

Y a plus qu’a faire des scripts shell … :slight_smile:

Exemple de script :

#/bin/bash
RESPONSE="";
RESPONSE=$(ssh -p portServerDistant user@ipServerDistant 'cd /home/christophe/script; find . -type f -iname lock.txt;');
echo $RESPONSE;

Exemple d’utilisation dans un scénarion

shell_exec('cd /pathDuScript/; ./scriptName.sh');

Voili voilou … si ça peut en aider certains … c’est très succins comme explication… hésitez pas si vous avez besoin de plus de détails pour compréhension ou autre… :slight_smile:

@chris94440
Update : les droits de base affecté à la clef id_rsa sont trop permissif (775) il faut lui appliquer les droit 600 (chmod 600 /var/www/.ssh/id_rsa)
Suite à une excellent remarque de @naboleo … prositionner un clef privée dans la racine d’un site est une très mauvaise pratique … du coup il faut lors de la génération de la clef préciser un autre emplacement (ex : ssh-keygen -f /home/www-data/.ssh/id_rsa) et lors de l’appel ssh faire référence à cette identité (ex : ssh -v -p $port $user@$server -i /home/www-data/.ssh/id_rsa)

2 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.