[APACHE sous LINUX] sudo dans un cgi
Albert Tete
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
Environnement
Linux fedora
Apache
Quand j'exécute la commande "
Merci pour vos idées.
TKX
Environnement
Linux fedora
Apache
Quand j'exécute la commande "
sudo service network start" en ligne de commande, ca fonctionne. Mais dès que j'exécute cette commande dans un cgi via la commande
OPER = `sudo service network start`, suivi de echo "$OPER" mon navigateur ne me retourne rien mais quand j'enlève le sudo, ma commande est de nouveau exécutée.
Merci pour vos idées.
TKX
A voir également:
- [APACHE sous LINUX] sudo dans un cgi
- Apache open office gratuit - Télécharger - Suite bureautique
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
- Backtrack linux - Télécharger - Sécurité
2 réponses
Il ne faut pas plutôt utiliser la commande exec ?
http://www.manuelphp.com/php/function.exec.php
Bonne chance
http://www.manuelphp.com/php/function.exec.php
Bonne chance
Salut,
exec PROGRAMME LISTE
La fonction exec() exécute une commande système et ne retourne jamais -- utilisez system() à la place de exec() si vous souhaitez qu'elle retourne. Elle échoue et retourne FAUX si et seulement si la commande n'existe pas et est exécutée directement plutôt que par votre interpréteur de commandes (shell)
system PROGRAMME LISTE
Fait exactement la même chose que exec LISTE sauf qu'un fork est effectué au préalable et que le process parent attend que son fils ait terminé. Remarquez que le traitement des arguments dépend de leur nombre. Si il y a plus d'un argument dans LISTE ou si LISTE est un tableau avec plus d'une valeur, system exécute le programme donné comme premier argument avec comme arguments ceux donnés dans le reste de la liste. Si il n'y a qu'un seul argument dans LISTE et s'il contient des méta-caractères du shell, il est passé en entier au shell de commandes du système pour être interprété (c'est /bin/sh -c sur les plates-formes Unix mais cela peut varier sur les autres). Si il ne contient pas de méta-caractères du shell, il est alors découpé en mots et passé directement à execvp(), ce qui est plus efficace.
exec PROGRAMME LISTE
La fonction exec() exécute une commande système et ne retourne jamais -- utilisez system() à la place de exec() si vous souhaitez qu'elle retourne. Elle échoue et retourne FAUX si et seulement si la commande n'existe pas et est exécutée directement plutôt que par votre interpréteur de commandes (shell)
system PROGRAMME LISTE
Fait exactement la même chose que exec LISTE sauf qu'un fork est effectué au préalable et que le process parent attend que son fils ait terminé. Remarquez que le traitement des arguments dépend de leur nombre. Si il y a plus d'un argument dans LISTE ou si LISTE est un tableau avec plus d'une valeur, system exécute le programme donné comme premier argument avec comme arguments ceux donnés dans le reste de la liste. Si il n'y a qu'un seul argument dans LISTE et s'il contient des méta-caractères du shell, il est passé en entier au shell de commandes du système pour être interprété (c'est /bin/sh -c sur les plates-formes Unix mais cela peut varier sur les autres). Si il ne contient pas de méta-caractères du shell, il est alors découpé en mots et passé directement à execvp(), ce qui est plus efficace.