Websh : web shell pour administrer un serveur linux sans client ssh

Description

Bonjour à tous,

Oui je sais, certains vont hurler en entendant parler d'exécution de commandes par pages PHP. Je n'ai pas fait ça pour un serveur de production mais pour mon petit serveur maison.

Il s'agit d'une interface AJAX simulant une console shell linux. Les commandes sont exécutées sur le serveur, un peu comme dans une session SSH (MAIS ça n'est PAS une session SSH).

Il y a également un explorateur de fichiers lié à la console (affichage des fichiers du répertoire courant dans la console), avec possibilité de téléchargement des fichiers et navigation dans les répertoires.

Les commandes sont exécutées avec l'instruction PHP "shell_exec".

Fonctionnalités :
- Login
- Exécution des commandes linux
- Explorateur de fichiers
- Téléchargement de fichiers
- Historique des commandes comme dans un shell linux
- Support de cygwin sur Windows

Problèmes / reste à faire :
- Problèmes avec les noms de fichier avec caractères spéciaux
- Utilisation du protocole HTTPS pour une sécurisation des données
- Log des sessions
- Impossible d'utiliser un programme interactif tel que vi, nano etc... (man marche)
- Pas d'affichage des erreurs (car pas de récupération des sorties sur stderr)
- En projet : édition d'un fichier en ligne
- En projet : raccourcis personnalisables vers des scripts shell pour lancer des taches sans passer par la console

Pour tester :
Créez un alias pour le répertoire /www/ et modifiez le fichier /inc/config/config.inc.php
Le login est "test" / pas de mot de passe

Conclusion :


Si vous avez des idées pour améliorer ça à tous les niveaux, j'en suis friand.

Si quelqu'un aurait une idée pour récupérer stderr avec shell_exec, et une idée pour exécuter et dialoguer avec un programme interactif comme VI ou NANO... Je vous écoute.

MadMatt

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.