Espace perso + fonction php pour script shell
19 messages
• Page 1 sur 2 • 1, 2
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Espace perso + fonction php pour script shell
Voilà, je travaille actuellement à la création d'un espace perso pour des serveurs de jeux.
Le but de ce petit pannel est de pouvoir executer des scripts shell/bash depuis son pannel perso comme le reboot ou la réinstallation du serveur de jeu.
Donc pour l'instant la solution simplissime retenu est la création d'un répertoire pour chaque membre protégé par .htaccess/htpasswd dans leur /home/user/www, le serveur de jeux se situant dans /home/user/serv/
Ma question est avant tout niveau sécurité... La fonction php exec n'étant pas très sécure et le php doit être safe mode off il me semble
J'ai vaguement entendu parlé de la fonction php system.
Donc quelques questions concernant cette fonction si quelques uns d'entre vous l'utilise ou si vous avez une méthode plus pertinente...
Le but serait de donner des bonnes permissions aux fichiers contenant le fonction exec car suffirait que l'user mette un "reboot" dedans et pas seulement son serveur de jeu ne rebooterais...
Voilà, si vous avez des liens web intéressants, ou d'autres... Je prends.
Le but de ce petit pannel est de pouvoir executer des scripts shell/bash depuis son pannel perso comme le reboot ou la réinstallation du serveur de jeu.
Donc pour l'instant la solution simplissime retenu est la création d'un répertoire pour chaque membre protégé par .htaccess/htpasswd dans leur /home/user/www, le serveur de jeux se situant dans /home/user/serv/
Ma question est avant tout niveau sécurité... La fonction php exec n'étant pas très sécure et le php doit être safe mode off il me semble
J'ai vaguement entendu parlé de la fonction php system.
Donc quelques questions concernant cette fonction si quelques uns d'entre vous l'utilise ou si vous avez une méthode plus pertinente...
Le but serait de donner des bonnes permissions aux fichiers contenant le fonction exec car suffirait que l'user mette un "reboot" dedans et pas seulement son serveur de jeu ne rebooterais...
Voilà, si vous avez des liens web intéressants, ou d'autres... Je prends.
- dmathieu
- Modérateur

- Messages: 7244
- Inscription: 9 Jan 2004
Pour n'autoriser que certaines actions, tu peut parfaitement faire un système de whiteliste.
Tu interdit toutes les commandes, sauf certaines.
Après, exec() ne permettra pas à tes membres de rebooter la machine. A moins que Apache ne soit executé en root evidemment.
Tu peut aussi sécuriser les commandes passées avec escapesheelarg et escapeshellcmd.
Tu interdit toutes les commandes, sauf certaines.
Après, exec() ne permettra pas à tes membres de rebooter la machine. A moins que Apache ne soit executé en root evidemment.
Tu peut aussi sécuriser les commandes passées avec escapesheelarg et escapeshellcmd.
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Bon j'ai trouvé un truc intéressant, mais bizarrement impossible d'éxécuter ce script, certainnement un problème de droits
Et le fichier reboot_serv.php
Alors d'abord terster en safe mode on, puis en off
Fonction exec pour tester, car c'est la seule que j'arrive à faire marcher... très certainement un problème de permission
apache : www-data
script php : zepol
script zepol.sh : zepol
le fichier zepol.sh n'éxecute que des fichiers apartenant à lui même...
Peut-être le problème du www-data... Alors je pense à suphp par encore install, mais bon :p
- Code: Tout sélectionner
<html>
<head>
<title>Membres</title>
<script type='text/JavaScript'>
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
}
xhr.open("GET","reboot_serv.php",true);
xhr.send(null);
}
</script>
</head>
<body>
<input type='button' value='Redémarrer serveur' onclick='go()' />
</body>
</html>
Et le fichier reboot_serv.php
- Code: Tout sélectionner
<?php
//echo "Votre serveur est en train de redémarrer";
echo exec('/home/zepol/www/zepol.sh');
?>
Alors d'abord terster en safe mode on, puis en off
Fonction exec pour tester, car c'est la seule que j'arrive à faire marcher... très certainement un problème de permission
apache : www-data
script php : zepol
script zepol.sh : zepol
le fichier zepol.sh n'éxecute que des fichiers apartenant à lui même...
Peut-être le problème du www-data... Alors je pense à suphp par encore install, mais bon :p
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Huhu
Bon, désolé de ne pas utiliser la fonction éditer, mais ça représente plusieurs pas, et si quelqu'un recherche la solution, ça pourra peut-être l'aider...
Donc j'ai fini par trouver...
Un ptit crontab qui vient toutes les minutes vérifier la présence d'un fichier d'un nom user_cequejeveuxfaire.txt.
Si ce fichier est présent, le script crontab execute ce fichier...
Bon, on arrive pas à une réactivité énorme, mais elle est toujours inférieure à la minute, donc c'est plutot pas mal...
Donc j'ai fini par trouver...
Un ptit crontab qui vient toutes les minutes vérifier la présence d'un fichier d'un nom user_cequejeveuxfaire.txt.
Si ce fichier est présent, le script crontab execute ce fichier...
Bon, on arrive pas à une réactivité énorme, mais elle est toujours inférieure à la minute, donc c'est plutot pas mal...
- Zam
- Nouveau WRInaute

- Messages: 21
- Inscription: 14 Aoû 2007
Pas besoin de reboot completement le serveur pour reboot le serv de jeu...
Je suis en train de me lancer la dedans aussi...par contre toutes ces commandes je ne les maitrise pas encore tt a fait...
Le php je debute...
mais j ai trouve un script permettant d envoyer des commande RCON a un serv...
Logiquement tout peut se faire depuis la...
Pour le reboot il suffirait d envoyer la commande exit,et si l autoupdate a été lancé avec le serv de jeu..il redemarrera!!!
Et la plupart des options peuvent se faire via rcon..
La seul chose que je cherche maintenant est de crééer justement ces pages reservé a l utilisateur x seulement...l utlisateur y aura sa page a lui avec son serveur...
Ce que je cherche c un script php qui me permette de gerer un espace membre de ce genre...si quelqu un avait ca sous la main...
parce que si je me lance dedans et vu mes connaissance...j en ai pour 3 mois!!!
Merci
Je suis en train de me lancer la dedans aussi...par contre toutes ces commandes je ne les maitrise pas encore tt a fait...
Le php je debute...
mais j ai trouve un script permettant d envoyer des commande RCON a un serv...
Logiquement tout peut se faire depuis la...
Pour le reboot il suffirait d envoyer la commande exit,et si l autoupdate a été lancé avec le serv de jeu..il redemarrera!!!
Et la plupart des options peuvent se faire via rcon..
La seul chose que je cherche maintenant est de crééer justement ces pages reservé a l utilisateur x seulement...l utlisateur y aura sa page a lui avec son serveur...
Ce que je cherche c un script php qui me permette de gerer un espace membre de ce genre...si quelqu un avait ca sous la main...
parce que si je me lance dedans et vu mes connaissance...j en ai pour 3 mois!!!
Merci
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Zam a écrit:Pas besoin de reboot completement le serveur pour reboot le serv de jeu...
Bah encore heureux que rebooter la machine ne soit pas nécessaire...
Je n'suis pas fan des reboots via exit. Un bon gros kill de tout ce qui concerne le serveur en question et une relance, tu gagnes pas mal de ram...
Pour le script php pour envoyer des RCON :
-http://www.kquery.com/forums/index.php?showtopic=1737
Marche très très bien...
Pour l'espace perso, bah tu envois tes commandes avec...
Mais dans ce cas là, HLSW est ptete un peu mieux si tu souhaites juste utiliser les commandes RCON... Moi j'ai fait des boutons pour lancer la compression des HLTVs... Si le serveur par en timeout, il te faudra bien le relancer, et par Rcon, tu n'risques pas d'avoir de réponses...
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
c'est bien de voir l'aspect secu avant de developper ton script
si tu peux faire tourner php en safe mode c'est mieux
le plus safe c'est de faire ecrire tes commandes dans un fichier en passant bien sur par une table de corresponcance et de lancer un shell en cron qui scrutera le fichier
rog
si tu peux faire tourner php en safe mode c'est mieux
le plus safe c'est de faire ecrire tes commandes dans un fichier en passant bien sur par une table de corresponcance et de lancer un shell en cron qui scrutera le fichier
rog
- Zam
- Nouveau WRInaute

- Messages: 21
- Inscription: 14 Aoû 2007
On vient de me filer une adresse:
http://php-info.info/demo/
pour l espace membre...apres a toi de creer tes pages..^^
Ca peut ne pas etre mal!!!
Par contre je n ai pas compris comment tu peut reboot lorsque le serv est dead...
Il faut utiliser une commande du genre exec???en php...pour l instan je ne sai pas du tt m en servir...
Mais il fau bien commencer^^
http://php-info.info/demo/
pour l espace membre...apres a toi de creer tes pages..^^
Ca peut ne pas etre mal!!!
Par contre je n ai pas compris comment tu peut reboot lorsque le serv est dead...
Il faut utiliser une commande du genre exec???en php...pour l instan je ne sai pas du tt m en servir...
Mais il fau bien commencer^^
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Bah tu lances bien ton serveur CS via putty (SSH) via un script.
Donc si, dans ton idée de demander un reboot du serveur CS par un exit dans la console HLSW. Le problème est que si ton serveur part en timeout, en zombie ou un truc chiant, le exit ne risque pas de répondre...
Moi à l'origine c'était surtout pour le HLTV, tu loues un serveur CS + HLTV, le gars tappes stop au lieu de stop_recording, son HLTV est down, impossible de le relancer sans shell.
Donc voilou... Tout dépends si c'est pour un usage perso ou team ou location... Pour la location faut vraiment se mettre dans la peau d'un noob...
Donc si, dans ton idée de demander un reboot du serveur CS par un exit dans la console HLSW. Le problème est que si ton serveur part en timeout, en zombie ou un truc chiant, le exit ne risque pas de répondre...
Moi à l'origine c'était surtout pour le HLTV, tu loues un serveur CS + HLTV, le gars tappes stop au lieu de stop_recording, son HLTV est down, impossible de le relancer sans shell.
Donc voilou... Tout dépends si c'est pour un usage perso ou team ou location... Pour la location faut vraiment se mettre dans la peau d'un noob...
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
http://wiki.touch-serv.net/index.php/TSd_Admin
Ca marche plutot bien et nous l'installons à nos clients...
Ca marche plutot bien et nous l'installons à nos clients...
19 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- [résolu] PHP-Trier un tableau en fonction d'un critére perso
- script Shell ad hoc comment s en servir ???
- cherche script php pour administrer un espace
- Quel est le meilleur script php pour un espace membre?
- Problème php - Fonction die, arret de script
- Script PHP : affichage la langue en fonction du navigateur
- Appeler une fonction PHP avec 2 variables dans un prog JAVA script
- fonction mail cci ou envoi perso
- Fonction link: de Google (avec ou sans espace après les : )
- Comment lancer un script php à parrtir d'un autre script php ?
Consultez la description détaillée des produits ou services de Google suivants : Google Space
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
