Lancer une machine virtuelle Virtualbox
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 :
La machine ne se lance pas sachant quelle est stocker dans l'utilisateur linux 'user'
Merci
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:
- Lancer une machine virtuelle Virtualbox
- Machine virtuelle windows - Guide
- Machine virtuelle gratuite - Télécharger - Émulation & Virtualisation
- Regle virtuelle - Guide
- Lancer une application au démarrage windows 10 - Guide
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
3 réponses
Bonjour,
Bonne chance
- 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
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
/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
Bonjour Yann,
Je pense avoir bien compris ce que tu voulais faire (utiliser
Pour revenir à ton problème, je pense que
Petite précision au passage : quand tu écris
Bonne chance
Je pense avoir bien compris ce que tu voulais faire (utiliser
mod_suexecpour lancer ton programme tiers (
vbomanage) avec un utilisateur et un groupe dédié.
suphpest 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_suexecest mal configuré (peut-être parce que tu as oublié l'option
+ExecCGIdans 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 useril 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