OVH Cloud OVH Cloud

Sudo fait dodo !

3 réponses
Avatar
Fr
Je voudrais à partir de scripts php modifier des fichiers de config de mon
serveur.
La fonction Sudo commande marche bien pour executer un programme, mais pas
du tout, pour enregistrer dans un fichier ?
Comment faire pour qu'elle se réveille dans ce cas precis ?

Merci

3 réponses

Avatar
Fr
Excusez mon manque de clarté.. (je viens de relire, et je ne suis pas sur
que tout le monde puisse comprendre)..
En fait, mon problème est tout con : depuis un script PHP, je veux pouvoir
avoir tous les droits du root pour accéder à tous les fichiers et les
commandes du serveur...

En fait, il faudrait que mon script devienne l'utilisateur root et non plus
apache.. C'est possible avec SUDO ?

REmerci ;)





"Fr" a écrit dans le message de news:
bvooro$cpc$
Je voudrais à partir de scripts php modifier des fichiers de config de mon
serveur.
La fonction Sudo commande marche bien pour executer un programme, mais pas
du tout, pour enregistrer dans un fichier ?
Comment faire pour qu'elle se réveille dans ce cas precis ?

Merci




Avatar
Basile Starynkevitch [news]
On 2004-02-03, Fr wrote:
Excusez mon manque de clarté.. (je viens de relire, et je ne suis pas sur
que tout le monde puisse comprendre)..
En fait, mon problème est tout con : depuis un script PHP, je veux pouvoir
avoir tous les droits du root pour accéder à tous les fichiers et les
commandes du serveur...


C'est à mon avis à proscrire absoluement, car c'est un enorme trou de
sécurité (il ne suffit pas de prouver votre programme, il vous faut
aussi prouver l'interprete PHP lui-même!). Que ferait ce script qui a
besoin des droits de root?



En fait, il faudrait que mon script devienne l'utilisateur root et non plus
apache.. C'est possible avec SUDO ?


Tout dépend si votre script PHP est lancé en tant que CGI (c'est
possible mais inhabituel avec Apache) ou s'il est lancé par mod_php
(auquel cas il s'execute dans le même processus que celui d'Apache qui
sert votre requête). Si votre script PHP est un CGI, il vous suffit de
le remplacer par
#! /bin/sh
exec sudo votrescript.php $*
Mais je repête que c'est un gros trou de sécurité.

A mon avis, la bonne manière est de coder un petit programme (serveur
-qui tourne en permanence- ou commande -qui est lançé à chaque
requête) séparé, eventuellement setuid root, qui est lancé par votre
script php ou qui communique avec lui.

Sauf si c'est top secret, quel est le problème exact qui vous fait
vouloir executer votre script sous root?


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net
aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net
8, rue de la Faïencerie, 92340 Bourg La Reine, France

Avatar
Fr
Non, php ne tourne pas en CGI.

En fait, j'ai développé un systeme pour automatiser la création de sites
internet.
Je voudra administrer le serveur (ajouter des domaines, des sous-domaines,
des adresses mails) depuis une interface php.
Je sais, il existe des outils pour celà, (webmin entre autre), mais, celà
reste relativement long, et réservé seulement à l'administrateur..
Or, moi, je souhaite par exemple, qu'un simple "client" puisse configurer
ses boites mails depuis une page web.

La solution que j'ai trouvé est de créer des petits scripts Perl, que
j'apelle depuis php via un system("sudo script_perl");...
Mais, je ne maitrise pas (encore) le perl.. et si ca pouvait etre fait
directement en PHP....

Merci de vos lumières !






"Basile Starynkevitch [news]" a écrit dans
le message de news:
On 2004-02-03, Fr wrote:
Excusez mon manque de clarté.. (je viens de relire, et je ne suis pas
sur


que tout le monde puisse comprendre)..
En fait, mon problème est tout con : depuis un script PHP, je veux
pouvoir


avoir tous les droits du root pour accéder à tous les fichiers et les
commandes du serveur...


C'est à mon avis à proscrire absoluement, car c'est un enorme trou de
sécurité (il ne suffit pas de prouver votre programme, il vous faut
aussi prouver l'interprete PHP lui-même!). Que ferait ce script qui a
besoin des droits de root?



En fait, il faudrait que mon script devienne l'utilisateur root et non
plus


apache.. C'est possible avec SUDO ?


Tout dépend si votre script PHP est lancé en tant que CGI (c'est
possible mais inhabituel avec Apache) ou s'il est lancé par mod_php
(auquel cas il s'execute dans le même processus que celui d'Apache qui
sert votre requête). Si votre script PHP est un CGI, il vous suffit de
le remplacer par
#! /bin/sh
exec sudo votrescript.php $*
Mais je repête que c'est un gros trou de sécurité.

A mon avis, la bonne manière est de coder un petit programme (serveur
-qui tourne en permanence- ou commande -qui est lançé à chaque
requête) séparé, eventuellement setuid root, qui est lancé par votre
script php ou qui communique avec lui.

Sauf si c'est top secret, quel est le problème exact qui vous fait
vouloir executer votre script sous root?


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net
aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net
8, rue de la Faïencerie, 92340 Bourg La Reine, France