Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/11/2008, à 16:11

mandra

Fonction exec

Bonjour,
Je souhaiterais lançer un fichier contenant des commandes Linux en passant par liens Hypertextes.
Je souhaites pour celà utiliser la fonction exec de php mais celle-ci ne me renvoi aucun affichage a l'écran, ni erreur, ni résultat.

Fichier à éxécuter :
sudo mkdir //var/www/test

Fichier PHP :
<a href="<?php exec('test.sh'); ?>">Click me</a>

J'ai dejâ vérifié dans mon PHP.ini les fonctions désactivées, celle-ci n'en fait pas partie et mon safe_mode est bien sur OFF.

Voilà, je suis un peu paumé avec cette fonction.
Merci de votre attention.
A+

#2 Le 19/11/2008, à 16:28

Link31

Re : Fonction exec

sudo va te demander un mot de passe... comment espères-tu l'entrer ?

Il suffit de t'assurer que l'utilisateur sous l'identité duquel tourne PHP a le droit de créer un dossier dans /var/www, et d'utiliser mkdir() directement depuis PHP.

Hors ligne

#3 Le 19/11/2008, à 16:32

mandra

Re : Fonction exec

Donc cela devrait fonctionner ?
<a href="<?php exec('mkdir //var/www/test'); ?>">Click me</a>

Mais cela ne change rien donc comment m'assurer que l'utilisateur sous lequel tourne PHP à bien les droit néscéssaires ? Dans quel fichiers je peut modifier cela ?

Merci de ta réponse.
A+

#4 Le 19/11/2008, à 16:48

Link31

Re : Fonction exec

Non, ça ne marchera pas. Le PHP ne s'utilise pas comme ça.

Exemple de ce qu'il faut faire :

test.html

<a href="test.php">Click me</a>

test.php

<?php echo mkdir("/var/www/test") ? "Opération effectuée avec succès" : "Échec de l'opération"; ?>

Pour les permissions, regarde avec ps aux sous quel utilisateur tourne PHP, puis :

sudo chown nom_de_l'utilisateur /var/www

Dernière modification par Link31 (Le 19/11/2008, à 16:48)

Hors ligne

#5 Le 19/11/2008, à 16:50

Seren

Re : Fonction exec

De tête, il me semble que PHP est lancé par l'utilisateur www qui appartient au groupe www.

En faisant un chown www:www, ça fonctionne je crois.

(Par contre c'est peut être un peu dangereux que cet utilisateur puisse accéder à ce répertoire, si c'est mal codé potentiellement depuis le site web on peut t'efface le-dit site...Il vaut mieux restreindre à un sous répertoire genre /var/www/log ou /var/www/tmp...)

Dernière modification par Seren (Le 19/11/2008, à 16:52)


"I am not young enough to know everything". Oscar Wilde

Hors ligne

#6 Le 19/11/2008, à 16:54

mandra

Re : Fonction exec

Le soucis c'est que le mkdir était là pour simplifier mon problème à vos yeux.
Car au final je souhaite lançer une commande samba (smbmount).
D'ou le fait que je cherche à utiliser la commande exec et non des fonction intégrée à php. A moin bien sur qu'une fonction de php permet d'utiliser directement la fonction smbmount mais j'en doute.

Merci encore wink