Lancer une machine virtuelle Virtualbox

Fermé
yann458 Messages postés 455 Date d'inscription dimanche 29 mai 2011 Statut Membre Dernière intervention 13 mars 2024 - 25 févr. 2022 à 18:15
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 4 mars 2022 à 15:48
Bonjour,
J'ai fais en code C un script cgi pour apache2 linux,
ca fonctionne sauf que la machine virtuelle 'Virtualbox' ne démarre pas quand je passe par http://localhost/cgi-bin,
quand je le lance directement par le shell ./scrit.cgi , la machine virtuelle démarre bien.

Je traiterai l'url /cgi-bin/startvm une fois que cela fonctionne.

Voici le source :


#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/sbin/runuser -l user -c '/usr/bin/vboxmanage startvm {6e6e342b-b65e-43fa-a842-bd9118c5e0ad} --type headless'");
 
 
 
    return 0;
 
}


La machine ne se lance pas sachant quelle est stocker dans l'utilisateur linux 'user'

Merci

Configuration: Linux / Firefox 91.0
A voir également:

3 réponses

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 811
2 mars 2022 à 15:48
Bonjour,
  • Est-ce que le contenu HTML s'affiche bien (ce qui montrerait que ton CGI est bien exécuté) ?
  • Est-ce que le script CGI est lancé avec des droits root (ce qui est requis pour basculer en "user" avec
    /usr/sbin/runuser -l user
    ) ?
  • Pourquoi ne pas avoir simplement fait un script PHP + utilisé
    suphp
    ?


Bonne chance
0
yann458 Messages postés 455 Date d'inscription dimanche 29 mai 2011 Statut Membre Dernière intervention 13 mars 2024
Modifié le 4 mars 2022 à 14:23
Ca ne marche pas.
/usr/sbin/runuser -l user sert à commuter le shell en mode user.
Le cgi est lancé depuis apache quand je me connecte à http://localhost/cgi-bin ,c'est ce qui faut.
J'ai une erreur interne à l'appel de cgi aprés avoir decommenter
SuexecUserGroup user user
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 811
4 mars 2022 à 15:48
Bonjour Yann,

Je pense avoir bien compris ce que tu voulais faire (utiliser
mod_suexec
pour lancer ton programme tiers (
vbomanage
) avec un utilisateur et un groupe dédié.
suphp
est juste une manière plus simple de faire la même chose. Mais peu importe tu peux continuer comme tu as fait.

Pour revenir à ton problème, je pense que
mod_suexec
est mal configuré (peut-être parce que tu as oublié l'option
+ExecCGI
dans la configuration de ton vhost apache). Du coup, peux-tu essayer de vérifier que tu as fait tout ce qu'il fallait en te basant sur ce tutoriel ?

Petite précision au passage : quand tu écris
SuexecUserGroup user user
il s'agit en fait de
SuexecUserGroup user group
(sachant qu'il n'est pas rare d'avoir des noms de groupe qui correspondent à des noms d'utilisateur -- et qui ne contienne que cet utilisateur).

Bonne chance
0