Commande unix sqlplus avec shell_exec(); en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Commande unix sqlplus avec shell_exec(); en php

Re: Commande unix sqlplus avec shell_exec(); en php

par moogli » 16 mai 2013, 23:15

est ce que l'utilisateur qui lance le process à le droit d'utiliser sqlplus ? (avant de lire écrire dans le dossier :) ).

est ce que tu peux te connecter, avec putty, avec cet utilisateur ?

ne peux tu pas lancer le contenu du fichier directement avec php ? (php_oci ou PDO) ?


@+

Re: Commande unix sqlplus avec shell_exec(); en php

par cgstag » 15 mai 2013, 16:53

Ayant déjà changé le propriétaire du fichier / du répertoire / de tous les fichiers
J'ai ensuite essayé de mettre le fichier puis répétoire puis tout en 755 et 777

Outre les problèmes majeurs de sécurité que cela pose, aucune de ces techniques ne marche.

Je suppose qu'il y a des limitations de ma version unix sur le droit donné à www-data sur certaine commande, mais je ne peux ni le vérifier, ni savoir comment le résoudre

Re: Commande unix sqlplus avec shell_exec(); en php

par ghost5922 » 15 mai 2013, 16:33

surement un problème de droit sur le fichier pas group mais user je pense

Re: Commande unix sqlplus avec shell_exec(); en php

par cgstag » 15 mai 2013, 16:09

Bien vu, ça ne semble pas marcher (alors que ça fonctionne en ligne de commande).

Dois-je en déduire que Apache n'a pas les droits en écritures donc...

j'ai pourtant mis tous les fichiers php/sh/sql en 7/5/5 ça devrait être suffisant non ?

a moins que ce soit un problème de groupe mais, je vais creuser...

Re: Commande unix sqlplus avec shell_exec(); en php

par ghost5922 » 15 mai 2013, 14:58

Re,

tu as teste avec un shell qui ferai que un mkdir par exemple ?

Re: Commande unix sqlplus avec shell_exec(); en php

par cgstag » 15 mai 2013, 14:51

Bonjour,

j'ai testé pas mal de droits du les fichiers, le 750 ne peut pas fonctionner avec ma configuration, j'ai donc tenté 7-5-5 / 6-6-6 mais pas plus de résultats.

Concernant le blog que tu as posté, il utilise sudo, qui n'est pas installé sur le serveur sur lequel je travaille. je vais étudier cette possibilité néanmoins...

merci tout de meme

Re: Commande unix sqlplus avec shell_exec(); en php

par ghost5922 » 15 mai 2013, 12:31

j'ai trouve cela sinon http://blogmotion.fr/systeme/executer-u ... n-php-1312

si tu fais
echo shell_exec('sh /var/www/mydirectory/myscript.sh');

Re: Commande unix sqlplus avec shell_exec(); en php

par ghost5922 » 15 mai 2013, 12:21

Bonjour,

je pense que tu as un souci de droit fichier essaie de mettre ton fichier en 750 sinon vois pour modifie le proriétaire du fichier

Commande unix sqlplus avec shell_exec(); en php

par cgstag » 15 mai 2013, 10:46

Bonjour, on m'a conseillé de réouvrir un nouveau sujet, je fais donc :) !

Je récapitule mon problème :

J'ai un script unix

Code : Tout sélectionner

#!/bin/bash echo "This script is working" sqlplus username/password//ip_address_distant_server:port/database @/var/www/mydirectory/myquery.sql parameter1 parameter2 parameter3

Que j'appel depuis une page php grace à shell_exec();

Code : Tout sélectionner

shell_exec('sh /var/www/mydirectory/myscript.sh');

Le navigateur affiche bien "This script is working", mais le script myquery.sql ne marche pas (il contient des spools, et est donc sensé m'envoyer des fichiers sur mon serveur).

A noter que quand je lance le script via la ligne de commande (depuis PuTTy, via un utilisateur normal) : tout marche normalement.
Lorsque je lance un bete script via shell_exec (sans sqlplus donc), cela fonctionne également.

Concernant les droits sur le fichier php, elle sont actuellement a 6 4 4 comme les autres, je me demande si cela a une influence.

Je suspecte (toutefois) un probleme de permissions entre l'utilisateur que prend Apache pour exécuter le script, et la commande unix sqlplus....si quelqu'un a déjà rencontré ce problème, toute aide est fortement accepté !

Merci d'avance.