[PHP] exécuter commande root avec exec [Résolu]

Applications, problèmes de configuration réseau
Répondre
mauribilis
Hankyu
Messages : 43
Inscription : dim. 28 oct. 2012, 11:26

[PHP] exécuter commande root avec exec [Résolu]

Message par mauribilis »

bonjour,
je tourne avec lighttpd, je voudrais exécuter une commande root avec exec

Code : Tout sélectionner

exec("echo 0 > /sys/class/gpio/gpio65/value", $err);
mais ça me retourne l'erreur suivante

Code : Tout sélectionner

sh: /sys/class/gpio/gpio65/value: Permission denied
je ne dois pas avoir les autorisations.

comment faire ?

merci d'avance
Dernière modification par mauribilis le sam. 03 nov. 2012, 15:02, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

Lancer un programme en C qui est setuid, c'est ce qu'il y a de plus simple
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
mauribilis
Hankyu
Messages : 43
Inscription : dim. 28 oct. 2012, 11:26

Re: [PHP] exécuter commande root avec exec

Message par mauribilis »

salut la compagnie,

j'ai fais mon programme c il marche, je l'ai testé en ligne de commande mais pas avec php le setuid ne doit pas êtrm
mon c

Code : Tout sélectionner

 
 
int main(int argc, char *argv[])
{
system("echo 1 > /sys/class/gpio/gpio65/value");
 return 0;
}
mon php

Code : Tout sélectionner

<?php
echo exec("cd /home && ./led");
?>
pour le setuid j'ai fais chmod ug+s et chmod u+s et chmod g+s sur mon programme compilé mais php dit toujours "Permission denied"
Dernière modification par mauribilis le ven. 02 nov. 2012, 08:48, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

Il ne faut pas faire ceci... Demain je te donnerai le code
Sinon ton programme doit appartenir a l'utilisateur root
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

Code : Tout sélectionner

#include <stdio.h>

#define GPIO_FILE "/sys/class/gpio/gpio65/value"

int main(void)
{
        int ret = 0;
        FILE *f = fopen(GPIO_FILE, "w");

        if (f != NULL)
        {
                if (fputs("1\n", f) <= 0)
                {
                        perror("Fail to write to: " GPIO_FILE);
                        ret = 2;
                }
        }
        else
        {
                perror("Fail to open: " GPIO_FILE);
                ret = 1;
        }
        return ret;
}
Compilation:

Code : Tout sélectionner

gcc -Wall -Wextra led.c -o led
En root :

Code : Tout sélectionner

chown root:root led
chmod ug+s led
Php :

Code : Tout sélectionner

<?php
echo exec("/chemin-vers-led/led");
?>
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
mauribilis
Hankyu
Messages : 43
Inscription : dim. 28 oct. 2012, 11:26

Re: [PHP] exécuter commande root avec exec

Message par mauribilis »

merci beacoup ça marche ! mais comment faire au lieu de echo (écrire) un cat (lire la valeur)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

fread ? fscanf ?
Tout dépend ce que tu veux faire :-)
Mais tu n'as pas besoin des droits root pour la lecture
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
mauribilis
Hankyu
Messages : 43
Inscription : dim. 28 oct. 2012, 11:26

Re: [PHP] exécuter commande root avec exec

Message par mauribilis »

je suis pas très sûr de mon code :

Code : Tout sélectionner

#include <stdio.h>

#define GPIO_FILE "/sys/class/gpio/gpio65/value"

int main(void)
{
        int ret = 0;
        FILE *f = fopen(GPIO_FILE, "r");

      
		fscanf(f, "%d", &GPIO_FILE);  
    printf ("Valeur lu : %d\n", GPIO_FILE);  
  
    fclose(f);  
            
        return ret;
}
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

Hum c'est faux, d'ailleurs cela ne devrait pas compiler, mais encore une fois sans savoir ce que tu veux faire... De plus pourquoi ne pas utiliser cat ?
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
mauribilis
Hankyu
Messages : 43
Inscription : dim. 28 oct. 2012, 11:26

Re: [PHP] exécuter commande root avec exec

Message par mauribilis »

Code : Tout sélectionner

 De plus pourquoi ne pas utiliser cat ?
cat /sys/class/gpio/gpio65/value est une ligne de commande doi-je exécuter cette ligne de commande dans un code c ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

... Je ne comprend vraiment pas ce que que tu veux faire... Peux tu développer
Pourquoi ne pas faire simplement

Code : Tout sélectionner

exec("cat /sys/class/gpio/gpio65/value");
Pourquoi vouloir faire un code C ?!
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
mauribilis
Hankyu
Messages : 43
Inscription : dim. 28 oct. 2012, 11:26

Re: [PHP] exécuter commande root avec exec

Message par mauribilis »

:D ah oui je n’avais plus pensais qu'une simple lecture nécessite pas de droit setuid, comment fait-on pour mettre le sujet en résolu ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PHP] exécuter commande root avec exec

Message par benjarobin »

Il faut éditer ton premier message
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre