Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Je veux tous les droits !!!

3 réponses
Avatar
Fr
Bonjour à vous... je ne prendrait pas le droit de vous importuner.. mais,
j'ai un cht'i soucis :

Depuis un script PHP, je voudrais administer mon serveur à la Webmin. Il
faudrait que ce script devienne root au lieu d'etre apache.

Sudo est pas mal pour executer une commande précise, mais, si je veux avoir
"tous les droits" et modifier des fichiers de configuration.. ca ne peut pas
marcher ?

La seule solution est-elle de créer des script-shell et de les appeler
depuis PHP via exec("sudo script") ? (Connaisant cette perle qu'est PHP,
J'veux pas me mettre au perl moi !)

Merci bobou !
Fr

3 réponses

Avatar
Lascap
C'est le but de ne pas autoriser apache à être root. Mais si vraiment tu
veux le faire (intranet, chez toi, je sais pas...) faire tourner apache en
root, et ça fonctionnera bien, je pense...

Lascap
Avatar
Noe
"Fr" a écrit dans le message de
news:bvoqt3$5ed$
Bonjour à vous... je ne prendrait pas le droit de vous importuner.. mais,
j'ai un cht'i soucis :

Depuis un script PHP, je voudrais administer mon serveur à la Webmin. Il
faudrait que ce script devienne root au lieu d'etre apache.

Sudo est pas mal pour executer une commande précise, mais, si je veux
avoir

"tous les droits" et modifier des fichiers de configuration.. ca ne peut
pas

marcher ?

La seule solution est-elle de créer des script-shell et de les appeler
depuis PHP via exec("sudo script") ? (Connaisant cette perle qu'est PHP,
J'veux pas me mettre au perl moi !)



Ca n'a pas grand chose à voir avec PHP vs Perl... Le "truc" de Webmin c'est
qu'il constitue un serveur Web particulier, qui n'a rien à voir avec le
Apache (ou autre) éventuellement installé à côté. Donc pour faire la même
chose ou presque en PHP, il "suffit" de lancer un second serveur Web avec
l'identité utilisateur qui va bien.

Avatar
tomm
ceçi n'est qu'un exemple qui ne fonctionne certainement pas tél quél..
mais dans l'idée j'avais agis comme ça pour mes scripts devant etre éxécuté
en root.

en faisant un script bash simplet, qui ais comme contenu quelques chose
comme :
[begin file]
#!/bin/bash
su root -c $*
[end file]
le fichiers se faisais éxécuter par :
shell_exec("/chemin_dans_archi_apache/script.bash $var1 $var2 $var3")

sachant que $var1 était souvent égal à la commande que je voulais éxécuter
(uniquement des chemin complet,
éviter les chemins relatifs au PATH.. fonctionne mal parfois le PATH en
sudo..)
puis que $var2, $var3 etc.. était les arguments supplémentaires.

maintenant, pour que tout cela fonctionne sans que ton apache se voit
demander le password
de root avant d'éxécuter ton souhait, il suffit de bien configurer ton
/etc/sudoers :
[begin file]
root ALL=(ALL) ALL
www-data localhost= NOPASSWD: /chemin/script.bash
[end file]

si ça peut aider,

tomm

"Fr" a écrit dans le message de
news:bvoqt3$5ed$
Bonjour à vous... je ne prendrait pas le droit de vous importuner.. mais,
j'ai un cht'i soucis :

Depuis un script PHP, je voudrais administer mon serveur à la Webmin. Il
faudrait que ce script devienne root au lieu d'etre apache.

Sudo est pas mal pour executer une commande précise, mais, si je veux
avoir

"tous les droits" et modifier des fichiers de configuration.. ca ne peut
pas

marcher ?

La seule solution est-elle de créer des script-shell et de les appeler
depuis PHP via exec("sudo script") ? (Connaisant cette perle qu'est PHP,
J'veux pas me mettre au perl moi !)

Merci bobou !
Fr