Executer .sh par php

Executer .sh par php - Shell/Batch - Programmation

Marsh Posté le 07-02-2004 à 14:53:28    

Je voudrais executer un fichier .sh avec un script php.
 
J'utilise la fonction passthru() car elle affiche les messages d'erreur ; sinon j'utilise exec()
 
voici le php :
 

Code :
  1. passthru("test.sh" );


 
test.sh :
 

Code :
  1. #!/bin/bash
  2. cat /usr/local/apache/conf/httpd.conf > httpd.conf.temp


 
Et la il me dit : "test.sh: httpd.conf.temp: Permission non accordée"
 
J'ai aussi testé juste un "cat /usr/local/apache/conf/httpd.conf" et la ca fonctionne !
 
J'ai vérifié les droits, tout me parait normal.
 
Une idée ?  :??:

Reply

Marsh Posté le 07-02-2004 à 14:53:28   

Reply

Marsh Posté le 07-02-2004 à 15:45:03    

kyle a écrit :


Code :
  1. #!/bin/bash
  2. cat /usr/local/apache/conf/httpd.conf > httpd.conf.temp


 
Et la il me dit : "test.sh: httpd.conf.temp: Permission non accordée"


 
Tu le fais où ton cat ? Parce que tu n'a pas les droits dans le répertoire courant. Je ferais :
 

Code :
  1. #!/bin/bash
  2. cd unrepertoireoujailesdroitsenecriture
  3. cat /usr/local/apache/conf/httpd.conf > httpd.conf.temp


Message édité par Evadream -jbd- le 07-02-2004 à 15:47:25
Reply

Marsh Posté le 07-02-2004 à 15:52:24    

c'est pas possible dans le répertoire home du user qui execute le fichier php ?

Reply

Marsh Posté le 07-02-2004 à 15:57:06    

Es-tu sur du user qui éxècute le fichier php ? Si oui, es-tu sur que tu te trouves bien dans son répertoire ? Si oui, le user a t'il  les droits sur son répertoire ?


Message édité par Evadream -jbd- le 07-02-2004 à 15:57:22
Reply

Marsh Posté le 07-02-2004 à 15:59:53    

Je viens de créé un repertoire "temp" avec comme droits 777 et ca fonctionne.
Est-il possible de passer en root par une commande "exec()" ?

Reply

Marsh Posté le 07-02-2004 à 16:03:53    

Ok. Essaye de changer les droits en 755 pour voir si tu arrives à écrire dedans. Si tu n'y arrives pas, le script n'est pas éxecuté par le user alors, mais par un autre qui n'a pas les droits (au hasard, le user qui lance apache).
 
Pour ta question, je ne connais pas le php, mais ca m'étonnerait fortement que :) Tu aimes pas la solution de créer un répertoire avec les droits adéquats ?


Message édité par Evadream -jbd- le 07-02-2004 à 16:08:17
Reply

Marsh Posté le 07-02-2004 à 16:06:21    

en effet apres un chmod 755, permision refusée, surement que les commandes se font en nobody/nobody
 
En fait ce serait pour modifier le httpd.conf de apache, il me faut passer sous un autre user pour faire ca...
 
A moins qu'il y est une autre solution ;)

Reply

Marsh Posté le 07-02-2004 à 16:09:15    

Tu peux configurer Apache de tel sorte à aller lire son fichier de configuration dans le répertoire de ton user, non ? Je sais pas si c'est une bonne solution, mais ca devrait fonctionner :)

Reply

Marsh Posté le 07-02-2004 à 16:21:37    

bon j'ai donné les droits root.nobody au fichier httpd.conf et ca roule.
par contre, ca ne pose pas de soucis niveau secu ?

Reply

Marsh Posté le 07-02-2004 à 16:26:45    

J'ai pas tellement le recul pour t'en parler :) Mais à vue d'oeil c'est pas très secure. D'autres te répondront mieux que moi !

Reply

Marsh Posté le 07-02-2004 à 16:26:45   

Reply

Marsh Posté le 07-02-2004 à 16:32:44    

ok, merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed