Aller au contenu

Executer une commande système en php


Sujets conseillés

Posté

Bonjour,

la question est simple, j'ai un fichier que l'on va appeler run, et que je dois lancer en php.

Il se trouve dans le répertoire /usr/local/truc/, et donc, à priori, la commande serait :

exec("/usr/local/truc/run");

Le problème, c'est que je ne suis pas sûr de cette commande, et aussi que l'utilisateur ne peut être que nico.

Autrement dit, il faut tout d'abord envoyer "su nico", puis /usr/local/truc/run", pour qu'il démarre. Tout du moins, c'est ce que je fais sous 'putty'.

Comment fait on en php ?

Merci ;)

Posté

- le plus simple est que tu te serves de "sudo", il te permettra de te faire passer pour un utilisateur ou un autre le temps de l'exécution d'une commande. Par contre pour être vraiment utile il faudra faire un peu de configuration

- sinon tu fais en sortes que /usr/bin/run appartienne à nico et tu lui fais un "chmod 1755 /usr/bin/run" (oui, j'ai bien mis un 1 en premier). Tous ceux qui exécuteront "run" le feront automatiquement en temps que nico

Posté

J'ai essayé la seconde solution, et...

Lorsque j'essaie sur putty, il me ressort ceci :

Don't run /usr/local/truc/run with privileged user/group ID (UID < 11, GID < 11)

En php, il ne me sort rien :(

J'ai adopté la commande :

$output =`/usr/local/truc/run -a`;
echo "<pre>$output</pre>";
echo"Fin..";

Pourtant, il y a bien le 1 de 1755 qui s'est mis en place, apparemment.

Et pour une autre commande (qui n'a rien à voir..), il me ressort bien le résultat. Donc la commande devrait être bonne à priori.

Je ne sais pas si ce ne serait pas le programme qui serait 'protégé' pour ne fonctionner qu'avec un certain 'user'. Pour info, il est écrit en C++, ce qui me limite considérablement quant à jeter un oeil dedans..

Il n'y a pas possibilité de passer plusieurs commandes de suite ? Du style 'instaurer un dialogue'.

De plus (tant que j'y suis), le programme peut mettre 'vraiment' très longtemps à s'executer. Les infos devraient s'afficher au fur et à mesure, ou un truc comme ca.

Des idées ?

Merci.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...