Script shell + apache

bonjour,
bon j’ai modifier le message d’origine car le problème a changer et personne n’a encore répondu :stuck_out_tongue:

je souhaite récuperer des valeurs dans un fichier de configuration basique avec un script shell
pour le moment j’effectue :

[code]#on récupere la configuration
pwd="egrep "^pwd[=]" config.txt"
pwd="${pwd#pwd=}"

dhcp="egrep "^dhcp[=]" config.txt"
dhcp="${dhcp#dhcp=}"[/code]
mais cela ne fonctionne pas quand le script est executé depuis php via la fonction exec() (marche nikel depuis un shell utilisateur)

le fichier de config :

user=apache group=apache pwd=/home/gonzo/public_html/projet dhcp=/etc dns=/var/named

donc si vous avez d’autres moyens de faire ça …
merci

Pourquoi tu n’utilises pas directement PHP ? avec fopen & Co : http://fr.php.net/manual/fr/function.fopen.php

euh c’est p’tet pas clair ce que j’ai écrit apparement :stuck_out_tongue:
je ne veux pas les récupérer en php, je veux les récuperer dans mon script shell.

car les fichier que je doit modifier appartiennent au root. j’ai donc un script shell exécuté en sudo qui me permet de faire ces modification.

Cependant afin de facilité l’installation j’avais créé un script shell install.sh dans lequel l’utilisateur saisissait les infos que je stock ds config.txt

ensuite mon script shell qui s’execute à chaque « modification » via l’interface web va lire ses infos de config car il en a besoin pour atteindre correctement les fichier à modifier.

Il s’agit donc d’une lecture de fichier en script shell. Seulement le fait que ce script soit exécuté par apache rend la lecture de fichier impossible !
En effet j’ai essayé 3 méthodes différentes ds mon script shell qui fonctionnent toutes lorsque le script est lancé depuis une console. Mais lorsque je le lance avec un exec(« sudo monscript ») la ça ne veut pas lire le fichier de config. c’est vraiment étrange.
La seule différence que je vois est que apache est un utilisateur qui ne possède pas de shell. cependant etant donnée que je fai sudo je vois pas pkoi ca block. Surtout que toutes les commandes marchent (cp, cat, rm)

Donc en attendant ba j’ai remis en dur les infos dans le script shell et à l’install faut aller les mettres à la main :stuck_out_tongue: c’est moins pratique mais ça marche au moins

sudo est bine configuré ? Faut donner à l’utilisateur apache les droits de faire des taches en root. Ensuite niveau secu, faut faire vachement gaffe t’es en train de donner les droits root à un serveru web. Si jamais t’as une pauvre faille dans un script php, ça risque d’être très problématique.

merde jai supprimé ma ligne de sudoers du premier post :stuck_out_tongue:

pas trop de risque de ce côté la (enfin je pense)

je n’autorise appache qu’a exécuter mon script. voici la ligne du sudoers :

apache ALL=NOPASSWD: /home/gonzo/public_html/projet/webdhcpdns.sh

(vous noterez au passage le super nom que j’ai trouvé pour cette interface gérant dhcp et dns :stuck_out_tongue: )

ce script est en 755 avec apache comme proprio donc a priori pas de risque de faire autre chose que ce qui y est inscrit. ( au pire on peu lancer en boucle le restart du dhcpd :stuck_out_tongue: c’est vrai que ce serait chiant)

Heu je suis le seul a penser “mais il est completement taré?” executer un script shell en root depuis apache?

Ouais. J’vois pas trop l’interet d’utiliser un script shell.
Et c’est quoi les fichiers root en question que tu trippotes ?

euh je modifie le dhcpd.conf (/etc/dhcpd.conf) et les fichiers de zone du serveur bind (/var/named/.)
et je redemarre les serveur dhcp et dns.
L’interet d’utiliser un script shell avec sudo est de pouvoir modifier des fichiers dont le propriétaire est root et de pouvoir relancer des démons depuis une interface web.
Le sudo me semble avoir été inventé pour ça : effectuer des tâches nécessitant un accès root par un utilisateur lambda.
Si vous avez d’autres soluces allez-y lachez vous hein :stuck_out_tongue:
Sachant que je n’autaurise que l’exécution de mon script shell je vois pas ou est la faille de sécurité ? A moins que l’on ne puisse modifier le contenu du-dit script ?
Je devrai plutôt placé root comme propriétaire de ce fichier ? Il y a risque qu’un script quelconque puisse modifier le contenu de mon script shell sachant qu’apache en est le propriétaire ?
Au fait il s’agit d’une interface web d’administration qui tourne sur un serveur local donc exposée aux potentielles attaques internes uniquement.
Remarque yora bien un couillon dans l’iut pour essayer de faire chier tout le monde :stuck_out_tongue:

Apache est le propriétaire du script et t’as mis un chmod 7xx donc apache peut modifier le script comme il veut. Donc n’importe quel script PHP peut le faire, donc niveau sécu c’est pas top top.

Ok donc en 544 ya plus de souci ?