(Courriels de diversion: <tressaillement@debitiez-trotteront.com> <regrettable@barge-chasseur.com> <enfermerais@memoriseras-biffons.com> <cavalieres@calculee-enjoindrons.com> <fluctuaient@remediee-pelerai.com> <amorcable@meditaient-precautionnerez.com> <isobares@drainent-apres-guerre.com> <demolies@fignoles-objectait.com> <joins@accapares-chinee.com> <collectivisiez@interposerait-constaterait.com> )
> Salut! Salut a tous, je suis un nouvel arrivant qui espere apporter sa toute petite contribution sur toulouse ;-) Je suis tombé sur cette question, peut etre je pourrai apporter un elementde solution: > > J'ai trouve deux methodes (a noter que je ne les ai pas teste): > > * La methode bourin: > Editer le fichier "httpd.conf" de apache et definir aux variables "user" > et "group" la valeur "root" (au lieu de "nobody" par default). > Les commandes seront executees directement en tant que "root", mais > la c'est plutot dangereux O_O > > * La methode light: > Donner la permission a "nobody" (ou l'autre nom d'utilisateur specifie > dans "httpd.conf") de faire un "sudo". > Il n'y a qu'a faire un "exec("sudo macommande");" et ca devrait aller. Ces méthodes fonctionnent, mais il faut faire attention au cas ou on met des variables dans la commande exec(), porte ouverte au "cross-site scripting". Donc la méthode requiert de faire hypra attention aux erreurs de scripts php, avec les verifications qui vont avec du genre utiliser les $HTTP_VARS si on fait du post via un formulaire, interdire les caractères spéciaux ... (si on ne met pas de variables dans la fonction exec() mais juste la commande, le problème est évidemment levé) Perso, j'aime pas trop donner les droits d'un sudo à un utilisateur qui n'est pas sensé le faire, genre nobody ou www-data, et, dans le cas ou on les donne, je ne sais pas dans quel mesure un utilisateur du net sera empeché de faire ce qu'il veut sur la machine puisqu'il a les droits du sudo... Bref, la solution trouvée est de passer par un script CGI codé en bash, (ou autre, mais c'est pour reprendre la logique de la question !!). Le script prend les droits de l'utilisateur auquel il appartiend, et c'est le script qui agit en local sur la machine et non plus directement le code php. Ainsi, toutes les sécurités des utilisateurs sont conservées, et c'est le script qui a des droits et non plus l'utilisateur... Reste évidemment quand même qu'il ne faut pas mettre n'importe quoi dans le script ... ;-p > Voila, A++ @+, j'espere que j'ai pu un peu aider, toute les remarques sont les bienvenues ! > Choplair *qui s'enfui* Stéphane *qui arrive* -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>