Bonjour,
Dans gcc la fonction system fonctionne bien.
Mais quand il est appeller à partir d'un programme cgi via apache2 , ca ne fonctionne pas.
La page cgi s'affiche pourtant bien mais la fonction system ne fonctionne pas.
Mon code source :
Je traiterai l'url une fois que cela fonctionne.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{
char *dt;
time_t timer;
char time_str[25];
struct tm* tm_info;
dt=getenv("QUERY_STRING");
time(&timer);
tm_info = localtime(&timer);
strftime(time_str, sizeof(time_str), "%Y/%m/%d %H:%M:%S", tm_info);
/* Without this line, you will get 500 error */
puts("Content-type: text/html\n");
puts("<!DOCTYPE html>");
puts("<head>");
puts(" <meta charset=\"utf-8\">");
puts("</head>");
puts("<body>");
puts(" <h3>Hello world!</h3>");
printf(" <p>%s</p>\n", time_str);
if (dt!=NULL)
printf("%s\n",dt);
puts("</body>");
puts("</html>");
//traiter if url
//////////////////
system("/usr/bin/touch /tmp/bbbb");
system("/usr/sbin/runuser -l user -c '/usr/bin/vboxmanage startvm {6e6e342b-b65e-43fa-a842-bd9118c5e0ad} --type headless'");
return 0;
}
Le fichier /tmp/bbbb n'est même pas créer.
J'ai ajouter dans 000-default.conf :
SuexecUserGroup root root le serveur apache démarrer , mais quand appelle cgi j'ai une page web internal erreur.
Pareille si je fais avec SuexecUserGroup user user
J'ai déclarer dans www-data :
root@multimedia-d:/etc/apache2/suexec# cat www-data
/var/www
public_html/cgi-bin
/usr/bin/
/usr/sbin/
/media/user/Data/data/ROOTSITE/cgi-bin/
A l'aide merci .
Dernière modification par sizy458 (26-02-2022 12:03:56)