Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2355 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  administration serveur en php (apache en root ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

administration serveur en php (apache en root ?)

n°1504378
antix
Posté le 17-01-2007 à 20:31:36  profilanswer
 

Bonjour tout le monde !
 
J'ai un serveur Debian chez moi en local, et je souhaite que certains utilisateurs puissent effectuer quelques opérations de maintenance sans avoir d'acces shell.
Je me suis dit : Pourquoi ne pas faire un script php (avec identification) permettant certaines actions.
 
Par exemple avec la commande système, si je veu qu'un utilisateur puisse arrêter le serveur :

Citation :

sytem(halt)


 
Mais malheureusement apache n'a pas les droits pour faire cette commande , pour cela il faudrait que je le fasse tourner en root, ce qui n'est pas une très bonne solution.
J'aimerais donc savoir si il y a une alternative ?
 
 
Merci d'avance  
 
 
 
 
AnTiX


Message édité par antix le 17-01-2007 à 20:32:39
mood
Publicité
Posté le 17-01-2007 à 20:31:36  profilanswer
 

n°1504469
0x90
Posté le 18-01-2007 à 01:05:56  profilanswer
 

un script shell ou autre en setuid qui fait quelques actions prédéterminées et ton script php qui lance de script ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1504479
antix
Posté le 18-01-2007 à 07:03:33  profilanswer
 

Ha merci 0x90, ca me convient ;)
 
En fait comme je débute sur Linux, je ne connaissais pas setuid  :sweat:  
Par contre, comment je dis à php d'éxécuter le script ? Y'a une commande particulière ou je le fais avec system() ?
 
 
Merci !

n°1504589
nonau57
Posté le 18-01-2007 à 13:20:18  profilanswer
 

Tu peux aussi regarde du coté de la commande unix SUDO. Ensuite tu peux faire shell_exec(sudo halt), en configurant sudo pour qu'il ne demande pas le mot de passe pour halt.

n°1504591
0x90
Posté le 18-01-2007 à 13:26:18  profilanswer
 

antix a écrit :

Ha merci 0x90, ca me convient ;)

 

En fait comme je débute sur Linux, je ne connaissais pas setuid  :sweat:
Par contre, comment je dis à php d'éxécuter le script ? Y'a une commande particulière ou je le fais avec system() ?

 


Merci !

 

Ouaip avec system()


Message édité par 0x90 le 18-01-2007 à 13:26:24

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1504694
antix
Posté le 18-01-2007 à 17:29:33  profilanswer
 

Ok merci à vous, ca marche maintenant.
 
Par contre je me heurte à un nouveau problème:
Lorsque je veu afficher le statut samba (par exemple), je tape :
 

Citation :

<?php
$commande = "system("smbstatus" )";
echo "$command"
?>


 
Ca me r'envoie dans le naviguateur :

Citation :

Samba version 3.0.14a-Debian PID Username Group Machine ------------------------------------------------------------------- 10964 adrien samba adrien (192.168.1.4) Service pid machine Connected at ------------------------------------------------------- profiles 10964 adrien Thu Jan 18 17:25:12 2007 adrien 10964 adrien Thu Jan 18 17:25:12 2007 netlogon 10964 adrien Thu Jan 18 17:25:12 2007 famille 10964 adrien Thu Jan 18 17:25:12 2007 IPC$ 10964 adrien Thu Jan 18 17:25:12 2007 Multimedia 10964 adrien Thu Jan 18 17:25:13 2007 Locked files: Pid DenyMode Access R/W Oplock Name -------------------------------------------------------------- 10964 DENY_WRITE 0xa1 RDONLY LEVEL_II /home/samba/famille//Adrien/putty.exe Thu Jan 18 17:29:42 2007 10964 DENY_WRITE 0x2019f RDWR NONE /home/samba/profiles/adrien/Local Settings/Application Data/Microsoft/Outlook/Outlook.pst Thu Jan 18 17:25:16 2007


 
Il m'affiche le résultat sans saut de ligne (tout le texte est sur la même ligne, ce qui rend la lecture très difficile et fastidieuse. Y'a t-il un moyen de palier ce problème ?  
 
 
Merci


Message édité par antix le 18-01-2007 à 17:32:59
n°1504709
omega2
Posté le 18-01-2007 à 17:51:17  profilanswer
 

nl2br() et htmlentities sont tes amis pour passer de texte simple à de l'html. ;)

n°1504716
antix
Posté le 18-01-2007 à 18:08:54  profilanswer
 

J'ai essayé :
 
 

Citation :

<?php
$commande = nl2br(system("smbstatus" );
echo "$command";
?>


 

Citation :


<?php
$commande = htmlentities(nl2br(system("smbstatus" ));
echo "$command";
?>


 
et même :
 
 

Citation :


<?php
$commande = htmlentities(nl2br(system("smbstatus" ));
echo  htmlentities(nl2br("$command" ));
?>


 
Mais ca me renvoie toujours :

Citation :

Samba version 3.0.14a-Debian PID Username Group Machine ------------------------------------------------------------------- 10964 adrien samba adrien (192.168.1.4) Service pid machine Connected at ------------------------------------------------------- profiles 10964 adrien Thu Jan 18 17:25:12 2007 profiles 10964 adrien Thu Jan 18 18:00:22 2007 adrien 10964 adrien Thu Jan 18 17:25:12 2007 famille 10964 adrien Thu Jan 18 17:25:12 2007 Locked files: Pid DenyMode Access R/W Oplock Name -------------------------------------------------------------- 10964 DENY_WRITE 0xa1 RDONLY LEVEL_II /home/samba/famille//Adrien/putty.exe Thu Jan 18 17:29:42 2007 10964 DENY_WRITE 0x2019f RDWR NONE /home/samba/profiles/adrien/Local Settings/Application Data/Microsoft/Outlook/Outlook.pst Thu Jan 18 17:25:16 2007


 
Alors qu'en ligne de commande ca me renvoie :

Citation :


Samba version 3.0.14a-Debian
PID     Username      Group         Machine
-------------------------------------------------------------------
10964   adrien        samba         adrien       (192.168.1.4)
 
Service      pid     machine       Connected at
-------------------------------------------------------
profiles     10964   adrien        Thu Jan 18 17:25:12 2007
profiles     10964   adrien        Thu Jan 18 18:00:22 2007
adrien       10964   adrien        Thu Jan 18 17:25:12 2007
famille      10964   adrien        Thu Jan 18 17:25:12 2007
 
Locked files:
Pid    DenyMode   Access      R/W        Oplock           Name
--------------------------------------------------------------
10964  DENY_WRITE 0xa1        RDONLY     LEVEL_II         /home/samba/famille//Adrien/putty.exe   Thu Jan 18 17:29:42 2007
10964  DENY_WRITE 0x2019f     RDWR       NONE             /home/samba/profiles/adrien/Local Settings/Application Data/Microsoft/Outlook/Outlook.pst   Thu Jan 18 17:25:16 2007


 
Merci de votre aide.


Message édité par antix le 18-01-2007 à 18:11:55
n°1505242
antix
Posté le 19-01-2007 à 23:00:54  profilanswer
 

Je me permet de reposter car je me heure à un nouvea problème.
Je veus laisser à l'utilisateur le choxi du temps apres leque le serveur s'éteindra.
J'aimerais donc transmettre la variable temps à mon script à partir de php.
Le seul moyen que j'ai trouver, c'est avec un script cgi qui récupère les variables (ex : index?temps=10).
Mais malheresement le setuid ne marche pas avec les scripts perl :'(...
Il me renvoie :

Citation :

Can't do setuid (cannot exec sperl)


 
Ce qui m'ammene à me poser 2 questions :  
-Y'a t-il un moyen de faire fonctionner set uid pour perl ?
-Y'a t'il un moyen de faire un script shell pouvant remplir le rôle de mon ancien script perl (cad reboot en fonction du variable transmise par php).
 
Merci de votre aide précieuse

n°1505884
omega2
Posté le 22-01-2007 à 14:07:47  profilanswer
 

Le setuid, tu l'as mis sur le programme perl ou sur le script?
 
EDIT : ta nouvelle question a plus de chance de trouver une réponse dans OSA ou dans programmation PERL surtout que ca n'est plus une question de php.


Message édité par omega2 le 22-01-2007 à 14:09:19
mood
Publicité
Posté le 22-01-2007 à 14:07:47  profilanswer
 

n°1505994
antix
Posté le 22-01-2007 à 17:20:00  profilanswer
 

Ah ok merci , je l'ai mis sur le script perl.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  administration serveur en php (apache en root ?)

 

Sujets relatifs
apache, php et snmp[Java] Serveur JAVA Web
Interface connection serveur ftp. formulaire html + variable JSSite PHP à transférer sur le serveur FTP
[perl] connexion à un serveur MSSQL via freetdscommande If Exist via un serveur internet
Faire croire à une include qu'elle est sur son propre serveurProbleme de code pour vérifier le statut d'un serveur
Importer fichier vers serveurProblème connexion apache
Plus de sujets relatifs à : administration serveur en php (apache en root ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR