Applications, problèmes de configuration réseau
mauribilis
Hankyu
Messages : 43 Inscription : dim. 28 oct. 2012, 11:26
Message
par mauribilis » mar. 30 oct. 2012, 17:59
bonjour,
je tourne avec lighttpd, je voudrais exécuter une commande root avec exec
mais ça me retourne l'erreur suivante
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.
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » mar. 30 oct. 2012, 20:03
Lancer un programme en C qui est setuid, c'est ce qu'il y a de plus simple
mauribilis
Hankyu
Messages : 43 Inscription : dim. 28 oct. 2012, 11:26
Message
par mauribilis » jeu. 01 nov. 2012, 22:37
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
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.
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » jeu. 01 nov. 2012, 23:43
Il ne faut pas faire ceci... Demain je te donnerai le code
Sinon ton programme doit appartenir a l'utilisateur root
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » ven. 02 nov. 2012, 12:38
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:
En root :
Php :
mauribilis
Hankyu
Messages : 43 Inscription : dim. 28 oct. 2012, 11:26
Message
par mauribilis » ven. 02 nov. 2012, 20:59
merci beacoup ça marche ! mais comment faire au lieu de echo (écrire) un cat (lire la valeur)
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » ven. 02 nov. 2012, 21:42
fread ? fscanf ?
Tout dépend ce que tu veux faire
Mais tu n'as pas besoin des droits root pour la lecture
mauribilis
Hankyu
Messages : 43 Inscription : dim. 28 oct. 2012, 11:26
Message
par mauribilis » ven. 02 nov. 2012, 22:03
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;
}
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » ven. 02 nov. 2012, 22:31
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 ?
mauribilis
Hankyu
Messages : 43 Inscription : dim. 28 oct. 2012, 11:26
Message
par mauribilis » ven. 02 nov. 2012, 23:22
cat /sys/class/gpio/gpio65/value est une ligne de commande doi-je exécuter cette ligne de commande dans un code c ?
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » sam. 03 nov. 2012, 10:45
... Je ne comprend vraiment pas ce que que tu veux faire... Peux tu développer
Pourquoi ne pas faire simplement
Pourquoi vouloir faire un code C ?!
mauribilis
Hankyu
Messages : 43 Inscription : dim. 28 oct. 2012, 11:26
Message
par mauribilis » sam. 03 nov. 2012, 12:57
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 ?
benjarobin
Maître du Kyudo
Messages : 17632 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » sam. 03 nov. 2012, 14:04
Il faut éditer ton premier message