IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

script shell + php


Sujet :

Linux

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut script shell + php
    Salut !

    j'ai pu lire pas mal de trucs et j'ai fait un tour sur google sans arriver à me débug n'étant pas un fondu du développement.

    Mon problème est simple : je dois pouvoir exécuter un script shell depuis une page PHP, sauf que c'est là où le drame se passe.

    je me tape ça comme retour d'erreur :
    sudo: no tty present and no askpass program specified
    j'ai pourtant attribuer les droits qu'il fallait à mon script (www-data au script vu que c'est le www-data qui gère apache2, et je suis sous squeeze)

    j'ai modifié le fichier /etc/sudoers en rajoutant cette ligne :

    www-data ALL=(tetz) NOPASSWD:/scripts/execscripts.sh
    les droits après :

    chown -cvR tetz:www-data /scripts/
    chmod -cvR 750 /scripts/

    ma ligne de code pour tester la fonction qui permet d'exécuter le shell depuis le php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?PHP passthru ('/usr/bin/sudo -H -u tetz /scripts/execscript.sh'.' 1 '.pwetlol.' '.pwetlol, $error); ?>
    et donc je me retrouve avec l'erreur citée plus haut

    bref, je tourne en rond, merci à vous pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Que fait ton script exactement?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    il s'occupe d'envoyer les paramètres récupérer sur un autre serveur (paramètres = login/password) qui va créer un compte ftp, un vhost et une base de données.

    Si on lance le script de base à la main avec le login/password, tout marche normalement, tout est bien envoyé et tout se fait, le problème vient dès qu'on s'amuse à essayer de le faire via le php

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il les récupère en ssh?

    Il serait préférable de fournir ton script pour avoir une vision plus claire

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    #!/bin/bash

    #on redirige les flux
    2>&1 >> /var/log/scripts.log

    #on recupere tous les parametres
    script=$1
    user=$2
    pass=$3

    echo '##############################'>>/var/log/scripts.log
    echo `date +%R` >>/var/log/scripts.log
    echo "ouverture du script" >>/var/log/scripts.log
    echo $1 >>/var/log/scripts.log
    echo $2 >>/var/log/scripts.log
    echo $3 >>/var/log/scripts.log
    echo '##############################'>>/var/log/scripts.log


    #On se connecte en SSH au serveur afin de pouvoir executer le script
    case $script in
    "1")
    #ajout espace ftp
    ssh 88.191.139.213 "sh /scripts/ajout_user_ftp.sh $user $pass"
    exit
    ;;

    "2") #ajout du vhost et du folder web
    ssh 88.191.139.213 "sh /scripts/ajout_virtual_host_et_folder_web.sh $user"
    exit
    ;;
    "3")
    #ajout bdd
    ssh 88.191.139.213 "sh /scripts/creation_bdd_user.sh $user $pass"
    exit
    ;;
    "4")
    #ajout stats
    ssh 88.191.139.213 "sh /scripts/installation_stats_users.sh $user $pass"
    exit
    ;;
    "5")
    #ajout dns user
    ssh -p 2222 82.232.222.130 "sh /scripts/ajout_sous_domaine_user_dns.sh $user"
    exit
    ;;
    esac



    et donc les parametres sont recupérés via cette ligne dans le php :

    <?PHP passthru ('/usr/bin/sudo -H -u tetz /scripts/execscript.sh'.' 1 '.$uid.' '.$passwd, $error); ?>

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    voilà j'ai édit, c'est un peu plus propre !

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    bon bah j'ai toujours rien, j'ai un peu touché partout aux droits (sur le fichier php, sur le script) j'ai retouché au fichier /etc/sudoers et toujours rien toujours le même message d'erreur à la con

  8. #8
    Invité
    Invité(e)
    Par défaut
    Salut,

    Peux-tu me dire quel user est utilisé pour les commandes ssh?


    Peux-tu ajouter l'instruction suivante à l'interieur de ton script pour savoir quel user est utilisé dans l'environnement d'execution.


  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    moi même pour utiliser les commandes ssh, qui appartient donc au groupe www-data, et j'ai les droits pour exe mon script .sh

    mais je suis en train de m'intéresser de près aux commandes ssh2_connexion et autre

  10. #10
    Invité
    Invité(e)
    Par défaut
    oui mais c'est également le user qui aparait sur la page web?

Discussions similaires

  1. Exécuter un script shell depuis php
    Par allyass dans le forum Linux
    Réponses: 5
    Dernier message: 12/12/2009, 01h14
  2. Réponses: 1
    Dernier message: 15/02/2009, 07h45
  3. [Système] Exécution d'un script SHELL avec PHP
    Par diabli73 dans le forum Langage
    Réponses: 5
    Dernier message: 02/10/2008, 15h07
  4. Réponses: 10
    Dernier message: 15/07/2008, 11h52
  5. Envoi d'une variable en shell script sur php
    Par Ponchi dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo