PHP accéder à des fichiers hors I-bays

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

PHP accéder à des fichiers hors I-bays

Messagepar mika2008 » 23 Avr 2010 09:49

Bonjour,
Voila
je dispose d'une SME-serveur 7.4

Sur cette sme-serveur, j'ai créer un compte FT laino_ft
donc j'ai cette utilisateur 'laino_ftp' qui vas m 'y déposer des fichiers

ensuite je créer une ibays karite

donc cette ebays à les droits d'exécuter du php.
donc je me créer une page php avec ce code ;

Code: Tout sélectionner
<?php
$files = glob("/home/e-smith/files/users/laino_ftp/home/*.txt");
echo '$files = '.$files;echo '<br>';
echo 'files : <pre>';
print_r($files);
echo '</pre>';
?>


donc ce code devrait m'afficher le nom des fichiers txt disponible dans le dossier /home/e-smith/files/users/laino_ftp/home/*
or voici le résultat :
Code: Tout sélectionner
$files = Array
files :

Array
(
)


or si je lance ce fichier en ligne de commande j'ai se résultat :
Code: Tout sélectionner
[root@serv_sme html]# php test.php
Content-type: text/html
X-Powered-By: PHP/4.3.9
$files = Array<br>files : <pre>Array
(
   [0] => /home/e-smith/files/users/laino_ftp/home/titi.txt
)
</pre>


donc j'ai utilisé ce script, qui devrait me permettre d'accéder a des répertoire au dehors de mon ebays en php :
http://smeserver.fr/astuces.php?astuce=php_basedir

mais ça ne marche pas.

est ce que ce probléme parle à quelqu'un svp ?

merci
mika2008
Matelot
Matelot
 
Messages: 5
Inscrit le: 23 Avr 2010 09:37

Messagepar jdh » 23 Avr 2010 10:22

Pour lire le contenu d'un répertoire, il est BIEN préférable d'utiliser la méthode standard avec readdir et décrite depuis php4 (et non une instruction présente depuis php5.3 !).

Cf http://www.php.net/manual/fr/function.readdir.php


Je ne connais pas SME mais les ibays ne sont-elle pas associés à des utilisateurs ?
Cela n'engendrerait pas des problèmes de droits d'essayer d'atteindre une ibay à partir d'une autre ?
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar mika2008 » 23 Avr 2010 11:49

Bonjour,
je ne trouve toujours pas de solution :'(


et je n'essai pas d'accéder d'une ibays à une autre.
mais d'une ibays à un dossier utilisateur
mika2008
Matelot
Matelot
 
Messages: 5
Inscrit le: 23 Avr 2010 09:37

Messagepar jdh » 23 Avr 2010 12:02

Quel code ?

NB : le premier commentaire fournit un exemple de code fonctionnel MAIS il faut tenir compte des droits sous lequel s'exécute le script et des droits des fichiers accédés : cela demande juste d'être précis et pas seulement d'espérer que cela fonctionne !

=> Attention à utiliser les fonctions présentes dans la version de php de la SME !
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar ecureuil1 » 23 Avr 2010 12:49

J'ai déjà un peu suivi le problème sur IRC

Je sais pourquoi cela ne fonctionne pas malgré
db accounts setprop toto PHPBaseDir /home/e-smith/files/ibays/toto/:/proc/
signal-event ibay-modify toto
qui normalement donne accès au répertoire.

Ce sont les droits au niveau du répertoire où on veut récupérer les données qui sont en 0700
drwx------ 5 toto toto 4096 avr 22 23:26 toto

Donc c'est toto le propriétaire et il n'y a que toto, le propriétaire, qui peut lire/écrire/exécuter.
et quand on est dans une ibay, on est un utilisateur www.

J'appelle au-secours JPP qui a proposé des solutions hier au soir sur IRC

Faudrait aussi savoir ce qui vont devenir les données qui sont affichées.
Donc mieux connaitre le but du jeu et ses règles.

Anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar unnilennium » 23 Avr 2010 21:54

1er probleme : sme utilise php 4 donc comme dit plus haut les focntions implementées depuis php 5 ne fonctionneront pas.

2/ Pour débugger un script php soit passer par le manager pour afficher le log message soit :

tail -f /var/log/messages


3/ efectivement il y'a une restriction PHPBaseDire qui limite l'accé uniquement au dossier de l'ibay donc ilf aut utiliser la commande suivante pour passer outre

db accounts setprop karite PHPBaseDir /home/e-smith/files/ibays/karite/:home/e-smith/files/users/laino_ftp/home/
signal-event ibay-modify karite


4/ l'utilisateur apache est www, l'utilisateur du dossier home/e-smith/files/users/laino_ftp/home/ est latino_ftp et le groupe est latino_ftp ... hors www ne fait pas parti de ce groupe et n'est pas l'utilisateur proprietaire... hors normalement dans un dossier utilistauer les fichiers sont non accessibles aux autres ... possibilité de les lister mais pas de les ouvrir pour lecture....

resolution choisir un autre dossier pour mettre les fichiers (pourquoi pas dans l'ibay dans le dossier files ?), ou ajouter www au groupe latino_ftp ..... (ce qui n'est pas conseillé)

Jean-Philippe
Unnilennium / http://smeserver.pialasse.com
________________________

IRC: chat.freenode.net/6667 channel: #sme-fr

newsgroup: alt.e-smith.fr
____________________
unnilennium
Vice-Amiral
Vice-Amiral
 
Messages: 749
Inscrit le: 21 Sep 2004 10:30
Localisation: Québec, Qc, Canada

Messagepar mika2008 » 26 Avr 2010 10:49

Bonjour, merci pour ces précision.

1/ j ne pense pas qu'il est des fonctions qui ne mache que sous php5.

2/ merci pour cette ligne de commande

3/ j'ai bien fait cette manip mais je ne peux pas manipuler les fichier avec des scripts php lancé en www.
donc j'imagine que c'est normale, qu'en ligne de commande ça marche.

4/ j'aimerais bien y mettre les fichiers dans /home/e-smith/files/ibays/karite/files/
Ce qu'il me faudrait c'est d'avoir un compte ftp qui pointe dirctement dans ce répertoire, mais comment faire ça avec la sme ?

merci beaucoup
mika2008
Matelot
Matelot
 
Messages: 5
Inscrit le: 23 Avr 2010 09:37

Messagepar dpfpic » 26 Avr 2010 13:21

Bonjour,

4/ j'aimerais bien y mettre les fichiers dans /home/e-smith/files/ibays/karite/files/
Ce qu'il me faudrait c'est d'avoir un compte ftp qui pointe dirctement dans ce répertoire, mais comment faire ça avec la sme ?


Pour cela,il te faut Smeserver-remoteuseraccess de Dungog.net :http://www.dungog.net/wiki/Smeserver-remoteuseraccess

DPFPIC
Avatar de l’utilisateur
dpfpic
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 160
Inscrit le: 24 Mai 2003 00:00

Messagepar unnilennium » 27 Avr 2010 18:49

mika2008 a écrit:1/ j ne pense pas qu'il est des fonctions qui ne mache que sous php5.


relis la doc de PHP alors car c'est le principe de faire evoluer les versions: améliorer la sécurité et ajouter des fonctions :
exemple http://php.net/manual/en/function.glob.php (PHP 4 >= 4.3.0, PHP 5)
exemple : http://ca3.php.net/manual/en/function.m ... harset.php (PHP 5 >= 5.2.3)

mika2008 a écrit:2/ merci pour cette ligne de commande

avec plaisir

mika2008 a écrit:3/ j'ai bien fait cette manip mais je ne peux pas manipuler les fichier avec des scripts php lancé en www.
donc j'imagine que c'est normale, qu'en ligne de commande ça marche.

il faut aussi que les droit utilisateur (chmod et chown) de www correspondent à ce que le répertoire permet, hors dans un répertoire utilisateur l'utilisateur apache www n'est pas le bienvenu puisque ce n'est pas son répertoire et qu'il n'est pas super utilisateur (et il ne doit pas l'être)

mika2008 a écrit:4/ j'aimerais bien y mettre les fichiers dans /home/e-smith/files/ibays/karite/files/
Ce qu'il me faudrait c'est d'avoir un compte ftp qui pointe directement dans ce répertoire, mais comment faire ça avec la sme ?

merci beaucoup


comme precisé plus haut remote user access qui est une contib décrite dans le wiki.contribs.org (y compris comment l'isntaller)
autre solution préciser à l'utilisateur de se rendre lui même via l'arborescence vers l'ibay.
Attention l'utilisateur doit etre membre du groupe qui a le droit d'ecrire dans l'Ibay.
Le user www est par defaut membre du groupe de l'Ibay quand php est activé pour l'ibay.
Unnilennium / http://smeserver.pialasse.com
________________________

IRC: chat.freenode.net/6667 channel: #sme-fr

newsgroup: alt.e-smith.fr
____________________
unnilennium
Vice-Amiral
Vice-Amiral
 
Messages: 749
Inscrit le: 21 Sep 2004 10:30
Localisation: Québec, Qc, Canada

Messagepar Gaston » 29 Avr 2010 19:53

Bonsoir,
mika2008 a écrit:4/ j'aimerais bien y mettre les fichiers dans /home/e-smith/files/ibays/karite/files/
Ce qu'il me faudrait c'est d'avoir un compte ftp qui pointe dirctement dans ce répertoire, mais comment faire ça avec la sme ?

je suis d'acccord avec les réponses préccédentes, mais j'aimerai néanmoins donner la solution de base :
http://wiki.contribs.org/SME_Server:Doc ... :Chapter14
* Note that users accessing the i-bay via FTP in this manner are not able to upload files to the i-bay. They can only download files from the i-bay to their client.
* It is possible to upload files using FTP, but to do so you must login to the server with a valid user name, not the i-bay name. That user account must be a member of the group that has been given write permission for the i-bay (configured on the i-bay screen). You would then change to the i-bay directory (using the ftp command "cd ../../ibays/ibayname"). You will now be able to upload files from your FTP client to the appropriate directories.


G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar ecureuil1 » 30 Avr 2010 14:07

Gaston a écrit:Bonsoir,

http://wiki.contribs.org/SME_Server:Doc ... :Chapter14
* Note that users accessing the i-bay via FTP in this manner are not able to upload files to the i-bay. They can only download files from the i-bay to their client.
* It is possible to upload files using FTP, but to do so you must login to the server with a valid user name, not the i-bay name. That user account must be a member of the group that has been given write permission for the i-bay (configured on the i-bay screen). You would then change to the i-bay directory (using the ftp command "cd ../../ibays/ibayname"). You will now be able to upload files from your FTP client to the appropriate directories.


G.


En français cela donne quoi?

Anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar Gaston » 30 Avr 2010 19:25

ralala le nécureuil à la pleine lune :lol:

j'avais commencé la traduction mais pas eu le temps hier, alors je recommence (juste pour la partie "positive")

* Il est possibe de télécharger (upload) des fichiers vers le serveur en utilisant FTP. Pour cela il est nécessaire d'utiliser un nom d'uttilisateur valide, pas un nom d'i-bay. Ce nom d'utilisateur doit apparternir au groupe pour lequel le droit d'écrituer a été donné dans la configuration de l'i-bay (écran de configuration de l'i-bay du serveur manager).
Une fois conneté au serveur, l'utilisateur doit changer de répertoire pour se placer dans le répertoire de l'ibay de destination (en utilisant la commande ftp "cd ../../ibays/ibayname"). Il est alors à même de réaliser le(s) transfert(s)

En pratique :
soit une i-bay "noisette" appartenat au groupe "ecureuil"
soit un utilisateur "anne" appartenant au groupe "ecureuil"
soit les droits d'écriture attribués au group "ecureuil" sur l'i-bay "noisette"

l'utilisateur "anne" se connecte en FTP au serveur SME "noisetier" en utilisant son nom/mdp
Code: Tout sélectionner
$ ftp noisetier.ixus.local
Connecté à 192.168.56.10.
220 192.168.56.10 FTP server ready
Utilisateur (192.168.56.10:(none)) : anne
331 Password required for anne
Mot de passe :
230 User anne logged in
ftp> cd ../../ibays/noisette/html
250 CWD command successful
ftp> dir
200 PORT command successful
150 Opening ASCII mode data connection for file list
-rw-rw-r--   1 0        5000          254 Apr 30 19:17 index.html
226 Transfer complete
ftp : 67 octets reçus en 0,00 secondes à 67000,00 Ko/s.
ftp> put install.ini
200 PORT command successful
150 Opening ASCII mode data connection for install.ini
226 Transfer complete
ftp : 843 octets envoyés en 0,01 secondes à 56,20 Ko/s.
ftp> dir
200 PORT command successful
150 Opening ASCII mode data connection for file list
-rw-rw-r--   1 root     ecureuil      254 Apr 30 19:17 index.html
-rw-rw-r--   1 anne     shared        806 Apr 30 19:26 install.ini
226 Transfer complete
ftp : 135 octets reçus en 0,00 secondes à 135000,00 Ko/s.
ftp>bye
221 Goodbye.

$

vala vala
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar ecureuil1 » 30 Avr 2010 22:00

tu traduis où le chap 14 en français?

Anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron