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

Soyez le premier à donner votre avis sur cette source.

Vue 9 263 fois - Téléchargée 604 fois

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

A voir également

Ajouter un commentaire

Commentaires

neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
Salut,

Pour stderr, y'a des pistes dans les commentaires de la doc PHP :
http://fr.php.net/manual/fr/function.shell-exec.php#78506
http://fr.php.net/manual/fr/function.shell-exec.php#67183

J'ai rien testé, juste lu ce qui se dit.

Pour ce qui est de l'édition de texte, si tu as du courage, tu peux toujours utiliser sed plutôt que vi ou nano (mais bon, faire un interface php pour sed... j'suis pas convaincu lol)
Pour un programme interactif, il reste les applets java ou flash... Mais en java, on peut carrément faire un web-client SSH, alors bon... pas forcément la même optique que la tienne.
MadM@tt
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Merci je vais regarder pour stderr.

Pour l'édition de texte, je pensais à une page PHP à part (qui n'execute aucun programme sur le serveur, juste une interface pour modifier le fichier).
Pour les programmes interactifs, effectivement, je veux eviter java. Je ne pense donc pas que ça soit faisable, mais bon.
GillesWebmaster
Messages postés
507
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1 -
prometteur comme projet!
griffondorr
Messages postés
436
Date d'inscription
dimanche 6 juillet 2008
Statut
Membre
Dernière intervention
4 mai 2009
-
même avis que GillesWebmaster ;)

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.