|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
Bonjour,
J'ai parcouru pas mal de forums, mais je n'arrive toujours pas à réaliser ce que je souhaite... Bref j'ai un gros script php qui effectue plein de scripts shells et expects (pour des connexions ssh). Ce script tourne sans soucis, mais lorsque je l'intègre dans une page PHP, cela ne marche plus. J'ai cru comprendre que ct parsqu'il était executé par apache et non plus par root. J'ai essayé de faire un chmod u+s monscript afin de donner les droits du propritaire a son executant, sans succès. J'ai essayé également de lancer les script shell via exec( "SUDO monscript.sh"); sans succès également. J'ai testé aussi les autres fonction include() sh_exec() sans succès. Le safe_mode est désactivé dans httpd.conf. Et mon fichier error_log m'indique aucune erreurs, si ce n'est: ... Password: Password: Password: Password: Password: Password: Password: Password: Password: [client *.*.*.*] PHP Warning: fread(): Length parameter must be greater than 0. in /tmp/script.php on line 174, referer: http://*.*.*.*/index.php?page=mapage Password: Est ce que quelqu'un pourrai m'aider à avancer ? |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : septembre 2007 Messages : 951 ![]() |
les commandes de ton script sont en chemin relatif ou absolu ?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
Bonjour,
les chemins sont en absolus. En fait j'ai avancé sur mon problème. Il semblerait que php se place toujours dans le dossier courrant. En effet si je fais une pwd sur ma page php, elle me retourne /var/www/html. Si je fais cd / à l'interieur de cette même page, elle me retourne toujours /var/www/html. Bref j'arrive appeller mon script php (qui se trouve pour l'instant dans /tmp)depuis ma page via le chemin ../../../tmp/script.php (oui c laborieux...) celui-ci se lance mais n'arrive pas à lancer les script shell. Le fichier error_log d'apache m'indique pour chaque script, permission denied. Cependant tous ces scripts sont en 777. Je pense qu'il faudrait que je donne à apache les mêmes droits que root, mais je ne sais pas comment faire. |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Inscription : septembre 2007 Messages : 951 ![]() |
- Dans tes users SUDO as-tu bien ajouté le user apache ?
- ESsayes-tu d'écrire dans des dossiers ? |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
J'ai avancé un peu.
En fait j'ai installé tous mes scripts dans un repertoire script dans www/html Du coup mon apache arrive a y acceder. Cependant pour mes connexions ssh, je doit verifier la clé RSA dans le fichier /root/.ssh/known_hosts. Mais vu que ce fichier n'est pas dans l'arborescence /var/www/html, j'arrive a y acceder ainsi: ../../../root/.ssh/known_hosts mais pas à le modifier... Comment je pourrais faire pour donner a apache le droit d'acceder (lire + modifier) a ce fichier. De meme, étant donné que j'ai maintenant mes scripts dans ../html/script, il me faudrai sécuriser ce dossier: apache doit pvoir y acceder mais, l'arborescence ne doit pas être disponible sur le site web. (J'ai abandonné l'option sudo) |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
je pense que donner les droits root à apache ne serait pas du tout judicieux...
Il me faudrait plutot modifier les droits d'accès d'apache plutot. J'ai essayer: <Directory "/var/www/html/script"> Order allow,deny allow from 127.0.0.1 deny from all </Directory> Dans httpd.conf. Ce qui effectivement block l'accès a l'arborescence mais ce n'est pas exactement ce que je veut... En fait je souhaiterai que l'accès soit autorisé pour quelqu'un de loggué... |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Inscription : septembre 2007 Messages : 951 ![]() |
A mon avis SUDO etait la bonne solution, donner le droit au user apache d'executer juste ce script en tant que root.
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
effectivement en modifiant le fichier sudoers et en donnant les droits spécifiques a apache le script fonctionne merci !!
Cependant maintenant j'ai un problème plutôt orienté authentification apache php/mysql. Je m'explique dans l'arborescence de mon site il est pour le moment possible, si l'on se place dans le repertoire mon-site/backup/ d'avoir accès a tous les sous dossiers et leurs contenus. Hors, j'aimerai que ces contenus ne soient disponible que en cliquant sur un lien href dans ma page php (c'est pour telecharger un fichier) car celle-ci est accessible authentifié via des session (authentification dans une base mysql). Donc, comment pourrais-je faire pour ne rendre ces dossiers accessible que via le site et non en tapant directement l'arborescence dans la barre d'adresse? Doit passer par un htaccess? (ce qui me semble dificile a utiliser pour quelque chose de dynamique: création/suppression de compte en ligne) |
|
|
00
|
|
|
#9 |
|
Membre émérite
![]() Inscription : septembre 2007 Messages : 951 ![]() |
Oui tu peux passer par htaccess, non ca n'ajoute absolument pas de difficulté pour la création de compte...en ligne.
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
ok je vien de voir que apparement c possible de faire une authentification htaccess sur une base mysql et non sur un fichier htpassword.
Je vais tester ca. Thanks |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 12 ![]() |
autentification avec fichiers .htaccess en liaison avec ma base mysql fonctionne niquel!
merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com