OVH Cloud OVH Cloud

execution de commandes par apache/php

6 réponses
Avatar
Axel
Bonjour,

Voila mon problème, j'aimerais pouvoir executer des commandes en php,
seulement, ces commandes doivent etre executées en root , comme par exemple
"useradd" ou autre.
J ai regardé du coté de suexec, mais il ne permet pas d executer en tant que
root ou utilisateur appartenant au groupe root.

Une solution est de mettre le root comme propriétaire d apache (ou de php si
php n est pas en module) (ou meme setuid apache, si jene me trompe pas)
Mais j 'aimerais à tout prix éviter d en arriver là.

Quelqu un aurait une solution pour ce problème ?

Merci d'avance.

6 réponses

Avatar
Axel
en fait useradd n'etait qu un exemple , j aimerais faire bcp d'autres
choses.
Ce que je vais faire :
- mettre les commandes dans un script shell
- utiliser SUDO pour lancer ce script en php

Je n ai pas trouvé d'autre solution valable.

Merci quand meme.
Avatar
Rakotomandimby Mihamina
chez moi

man useradd
[...]

useradd [-c comment] [-d home_dir]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[[-M] -m [-k skeleton_dir]] [-o] [-p passwd]
[-s shell] [-u uid] login
[...]

donc tu fais ton formulaire qui saisi ce qu'il veut ( tu peux meme lui
demander un mot de passe de son choix )

tu fabrique un mot de passe crypté ( voir sur f.c.o.unix ,ils viennent
de traiter un sujet sur comment crypter avec crypt() ) avec celui qu'il
a choisi

ensuite tu en fabrique un script shell qui contient


#!/bin/sh
useradd --les-options-kil-faut

que tu place avec un nom explicite sur ton systeme de fichier .
sur ton syteme , tu peux enclure la lecture de ce ficher toutes les
minutes par un script cron qui appartient a root ... et tu as donc une
creation d'user possible toutes les minutes ...

fait gaffe a ce que tu mets dans ce script et prends un soin particulier
a controloer les donnees entrees par le formulaire web ...

useradd
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina
Avatar
TiChou
Dans le message <news:c7vf3n$84t$,
*Axel* tapota sur f.c.o.l.configuration :

Ce que je vais faire :
- mettre les commandes dans un script shell
- utiliser SUDO pour lancer ce script en php

Je n ai pas trouvé d'autre solution valable.


C'est la solution la plus simple et la plus sage.

--
TiChou

Avatar
Chuck
TiChou wrote:

Dans le message <news:c7vf3n$84t$,
*Axel* tapota sur f.c.o.l.configuration :

Ce que je vais faire :
- mettre les commandes dans un script shell
- utiliser SUDO pour lancer ce script en php

Je n ai pas trouvé d'autre solution valable.


C'est la solution la plus simple et la plus sage.



s'il s'agit de création de comptes par exemple pourquoi ne pas utiliser
LDAP, ça me parait nettement plus secure...

A plus


Avatar
TiChou
Dans le message <news:c8093d$2kci$,
*Chuck* tapota sur f.c.o.l.configuration :

Ce que je vais faire :
- mettre les commandes dans un script shell
- utiliser SUDO pour lancer ce script en php

Je n ai pas trouvé d'autre solution valable.


C'est la solution la plus simple et la plus sage.

s'il s'agit de création de comptes par exemple pourquoi ne pas utiliser

LDAP, ça me parait nettement plus secure...


En quoi c'est plus secure ? Sans parler de la lourdeur d'un tel système à
mettre en place et à gérer, surtout s'il s'agit de gérer seulement quelques
comptes unix.
De plus la question ne portait pas sur la création de compte mais sur la
méthode la plus sure pour lancer des commandes diverses sous l'utilisateur
root.

--
TiChou



Avatar
Chuck
TiChou wrote:

Dans le message <news:c8093d$2kci$,
*Chuck* tapota sur f.c.o.l.configuration :

Ce que je vais faire :
- mettre les commandes dans un script shell
- utiliser SUDO pour lancer ce script en php

Je n ai pas trouvé d'autre solution valable.


C'est la solution la plus simple et la plus sage.

s'il s'agit de création de comptes par exemple pourquoi ne pas utiliser

LDAP, ça me parait nettement plus secure...


En quoi c'est plus secure ? Sans parler de la lourdeur d'un tel système à
mettre en place et à gérer, surtout s'il s'agit de gérer seulement
quelques comptes unix.
De plus la question ne portait pas sur la création de compte mais sur la
méthode la plus sure pour lancer des commandes diverses sous l'utilisateur
root.



Permettre à un utilisateur d'exécuter certaines commandes avec les droits de
root introduit fatalement un "certain risque" dans le système, sans parler
des éventuels bugs ou erreur dans les scripts qui peuvent avoir des
conséquence assez sérieuse.

Le tout est de bien évaluer l'importance et les conséquences de ce risque

Voilà