Gestionnaire de fichier en mode web: eXtplorer

eXtplorer est un gestionnaire de fichier accessible par votre navigateur. Il est intégré nativement à Joomla, mais il peut fonctionner individuellement sur tout serveur Web + PHP. Aucune base de donnée n’est nécessaire à son fonctionnement.

Les fonctionnalités de ce gestionnaire de fichiers sont nombreuses : Vous pourrez parcourir l’arborescence des répertoires et des fichiers sur le serveur et éditer, copier, déplacer, renommer, supprimer, envoyer et télécharger des fichiers (en mode ftp ou fichier), gérer les utilisateurs et les droits d’accès sur répertoires et fichiers, créer et extraire des archives (ZIP, Tar, Tar/GZ, Tar/BZ).
Vous pourrez utiliser eXtplorer pour vous connecter à un serveur FTP et travailler comme si vous utilisiez un client FTP. L’interface est semblable à celle d’une interface de gestion de fichiers classique avec menu contextuel, drag&drop, grille et arborescence de fichiers.

L’installation est simplissime:

  • Téléchargez la dernière version sur sourceforge
  • Dézippez le dossier
  • Envoyez les fichiers sur votre serveur en FTP ou tout autre moyen adapté
  • Donnez les fichiers à l’utilisateur démon du serveur web. Avec Ubuntu et Apache: sudo chown -R www-data:www-data /var/www/eXtplorer-xxx
  • Connectez vous à l’interface avec votre navigateur: http://ip_du_serveur/eXtplorer-xxx ou http://nom_domaine/eXtplorer

Identifiez vous comme admin avec le mot de passe admin. Il vous est proposé de modifier immédiatement le mot de passe et je vous conseille de le faire¹. En effet, admin a tout pouvoir sur le répertoire /var/www, et par conséquent sur tous les sites qui y sont présents. Inutile de tenter le diable.
A partir de là vous pourrez créer des utilisateurs, leur donner des droits, uploader et télécharger des fichiers, …
Sauf qu’il y a quelques petits problèmes. Mais rassurez vous, je vous donne les solutions ci dessous.

Supprimer les langues inutiles

Cela ne pose pas de problèmes particuliers, mais si vous n’avez aucun utilisateur allemand ou suédois, à part faire le kéké avec 27 langues dans votre gestionnaire, ça ne sert à rien.

Donc, dans le dossier languages, supprimez tout sauf index.html, french.php, french_mimes.php, english.php et english_mimes.php.

Corriger le fichier de langue

Le programme n’étant pas écrit par des français, la traduction date un peu. Surtout, elle n’intègre pas certaines lignes qui sont pourtant nécessaire au fonctionnement du logiciel.

Vous allez rencontrer deux erreurs lors d’une tentative de téléchargement par un utilisateur ne possédant pas les droits d’amin ou de modification vous disant ceci: Notice: undefined index: _VERSION in /var/www/extplorer/include/header.php on line 45 et Notice: undefined index: message in /var/www/extplorer/include/result.class.php on line 123.

Cela peut être résolu simplement en ouvrant le fichier languages/french.php et en modifiant le début (ajoutez les 2 lignes repérées) tel que ceci:

// French Language Module for joomlaXplorer (translated by Olivier Pariseau and Alexandre PRIETO)
global $_VERSION; // ajoutez cette ligne

$GLOBALS["charset"] = "iso-8859-1";
$GLOBALS["text_dir"] = "ltr"; // ('ltr' for left to right, 'rtl' for right to left)
$GLOBALS["date_fmt"] = "d/m/Y H:i";
$GLOBALS["error_msg"] = array(
 // error
 "error"            => "Erreur(s)",
 "message"            => "Message(s)", // ajoutez cette ligne
 "back"            => "Page précédente", 

 // root
.....

Sauvez le fichier et fermez votre éditeur.

Gérer les droits correctement

EXtplorer est développé pour fonctionner avec Joomla et son gestionnaire d’utilisateur. Or, en mode autonome, vous pourrez constater que les utilisateurs, quels que soient leurs droits (sauf admin et modification), ne peuvent pas télécharger. Ils tombent toujours sur une erreur leur disant qu’ils ne peuvent pas utiliser cette fonction. Si vous voulez donner le droit à vos utilisateurs de modifier leur mot de passe, ils ne peuvent plus télécharger les fichiers. Ce serait dommage!

On trouve en effet ceci dans le fichier de configuration: // user permissions bitfield: (1=modify, 2=password, 4=admin, add the numbers). Sauf que le fichier de download ne prend en compte que le niveau 1 de permissions.

Ouvrez avec votre éditeur favori le fichier include/download.php et remplacez la ligne 58

if(($GLOBALS["permissions"]&01)!=01) ext_Result::sendResult( 'download', false, $GLOBALS["error_msg"]["accessfunc"]);

par

if(($GLOBALS["permissions"]&02)<01) ext_Result::sendResult( 'download', false, $GLOBALS["error_msg"]["accessfunc"]);

Sauvegardez et fermez.

Astuces

  • C’est au moment de la création d’un utilisateur (ou lors de sa modification) que vous indiquez son home. Ne laissez pas ce qui vous est proposé par défaut, il s’agit de la racine du serveur web! Indiquez un dossier par son chemin absolu depuis la racine du système (par exemple /var/www/toto).
  • Le répertoire home des utilisateurs doit exister avant leur connexion. Je vous conseille de le créer avant de créer l’utilisateur.
  • Vous pouvez créer les dossiers des utilisateurs et ceux ci grâce à des scripts. Étudiez le contenu du dossier config, vous verrez que la structure est simple pour ajouter rapidement des dizaines d’utilisateurs.

Conclusion

J’ai découvert ce logiciel aujourd’hui³ (en pratique, parce que j’en avait entendu parler il y a quelques temps) et je n’ai pas constaté de difficulté particulière, ni à l’installation, ni à l’utilisation (une fois les fichiers modifiés comme indiqué ci dessus). Juste quelques limitations non bloquantes:

  • Tous les fichiers appartiennent à www-data². En cas de dossier partagé, impossible de savoir qui a modifié le fichier.
  • Chaque utilisateur peut avoir son propre espace de stockage, celui ci peut être partagé par plusieurs utilisateurs mais un utilisateur ne peut avoir accès à deux dossiers de deux utilisateurs autres. A moins d’utiliser des liens symboliques, mais question sécurité et confidentialité, c’est très difficile d’être sûr que les fichiers ne sont lisibles QUE par ceux qui le doivent.
  • eXtplorer a du mal entre l’UTF8 et l’iso8859-1. Certains noms sont parfois horribles, mais ça fonctionne.
  • Je n’ai pas testé la fonction permettant d’utiliser un serveur FTP depuis le logiciel, cette partie ne m’intéressant pas (mes utilisateurs se servant de filezilla qui fonctionne sur tous les OS)
  • Je suis assez réticent, pour des questions de sécurité, à utiliser ce type de gestionnaire de fichiers. Par rapport à un FTP simple, on ajoute des failles potentielles dans apache + PHP. Si un simple FTP vous suffit, contentez vous en, ce sera plus simple à sécuriser.
  • Pas de possibilité de skinner le logiciel. Il est assez beau tel quel, mais personnaliser un logiciel aux couleurs du client fait souvent toute la différence sur le contentement de celui ci. On peut bien sûr aller modifier les images une par une, mais elles sont dans des dossiers différents et je n’ai pas trouvé de règle d’utilisation de celles ci dans le code. Peut être dans la version suivante.

Il existe d’autres logiciels de gestion de fichiers en mode hébergé et je vais les regarder prochainement. EXtplorer nécessite en tout cas un peu de votre attention si vous cherchez ce type de logiciel.
1) si vous ne le faites pas, je parie qu’en moins de deux jours vous n’aurez plus du tout accès à votre serveur.
2) sur ubuntu. Sur d’autres distributions, l’utilisateur peut varier.
3) une demande d’installation d’une sorte d’ENT simple et rapide à mettre en place.

Articles en relation:

  1. yannobi
    27 février 2010 à 17:12:52 | #1

    C’est pour moi celui qui est le plus abouti et le plus pro !

  2. clement
    18 août 2010 à 13:52:47 | #2

    L’astuce sur les droits ne fonctionne pas, avec la modification les usagers en modification seule ne peuvent plus telecharger.
    Les droits sont 0,1,2,3,7 donc faire :
    if(($GLOBALS[« permissions »]&03)<01) ext_Result::sendResult( 'download', false, $GLOBALS["error_msg"]["accessfunc"]);

  3. 31 décembre 2011 à 16:05:36 | #3

    Impossible d’éditer un fichier, message d’erreur suivant:
    JSON Decode Error: dialog is undefined

  4. Alain
    1 avril 2012 à 01:02:32 | #4

    En 2012 est ce encore d’actualité ? Car je ne vois pas cette ligne dans le .php.

    De plus j’aimerai faire un dossier commun. Je l’ai donc fait au même niveau dans /var/www et j’ai créé un lien symbolique dans chaque répertoire users. Ca marche sous linux. Je le vois dans eXtplorer mais je ne peu pas y entrer.

    Merci d’avance 😉

    Alain

  5. 2 avril 2012 à 12:04:33 | #5

    C’est basé sur la version de extplorer à la date de l’article mais j’ai arrêté de suivre le projet. Il y a peut être eu d’autres versions.
    Je ne peux donc te répondre, désolé.

  1. 21 février 2010 à 13:05:17 | #1

Anti-Spam Quiz:

antibot * Time limit is exhausted. Please reload the CAPTCHA.

54.145.83.79