instructions et script
This commit is contained in:
23
Readme.md
23
Readme.md
@@ -1,15 +1,28 @@
|
|||||||
# CGI
|
# CGI
|
||||||
|
|
||||||
##
|
## Activer cgi
|
||||||
|
|
||||||
|
Créer le répertoire /srv/cgi
|
||||||
|
|
||||||
|
Y copier le fichier script.sh
|
||||||
|
|
||||||
|
⚠️ Ce script est un excellent exemple de chose à ne pas faire (voir (https://xkcd.com/327/) ).
|
||||||
|
|
||||||
|
Faire en sorte que le contenu du répertoire /srv/cgi puisse être traité par cgi
|
||||||
|
|
||||||
|
(c'est à dire qu'en appelant curl/lia.fr/cgi/script.sh?whoami, le script doit être exécuté et c'est le résultat de cette exécution qui est renvoyée au client)
|
||||||
|
|
||||||
|
## Utiliser suexec
|
||||||
|
|
||||||
Créer un compte et un groupe
|
Créer un compte et un groupe
|
||||||
|
|
||||||
S'assurer du support de suxec (grep suexec errorlog)
|
S'assurer du support de suxec (rechercher "suexec" dans le log d'erreur apache)
|
||||||
|
|
||||||
rajouter la directive suexecusergroup dans la conf
|
rajouter la directive suexecusergroup dans la configuration apache
|
||||||
|
|
||||||
|
copier le script dans /var/www/cgi-bin/ (cf suexec -V)
|
||||||
|
|
||||||
exécuter le script cgi avec la commande whoami
|
exécuter le script cgi avec la commande whoami
|
||||||
|
|
||||||
le script doit être qq part dans /var/www (cf suexec -V)
|
⚠️ le répertoire /var/www/cgi-bin doit appartenir à l'utilisateur "suexec"
|
||||||
|
|
||||||
faire attention aux permissions et owner
|
|
||||||
25
script.sh
Normal file
25
script.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo Content-type: text/html
|
||||||
|
echo ""
|
||||||
|
echo "<HEAD><TITLE>Test CGI en Shell</TITLE></HEAD>"
|
||||||
|
echo "<H1>Essai CGI</H1>"
|
||||||
|
echo "<H2>Quelques variables d'environnement du serveur</H2>"
|
||||||
|
echo "<P>"
|
||||||
|
echo SERVER_SOFTWARE = $SERVER_SOFTWARE"<BR>"
|
||||||
|
echo SERVER_NAME = $SERVER_NAME"<BR>"
|
||||||
|
echo SERVER_PROTOCOL = $SERVER_PROTOCOL"<BR>"
|
||||||
|
echo SERVER_PORT = $SERVER_PORT"<BR>"
|
||||||
|
echo REQUEST_METHOD = $REQUEST_METHOD"<BR>"
|
||||||
|
echo SCRIPT_NAME = "$SCRIPT_NAME""<BR>"
|
||||||
|
echo QUERY_STRING = "$QUERY_STRING""<BR>"
|
||||||
|
echo "<HR>"
|
||||||
|
echo "<H2>Lancement de la commande donnée en argument dans l'URL</H2>"
|
||||||
|
# Remise en forme, (les espaces ont disparu)
|
||||||
|
QUERY_STRING=`echo $QUERY_STRING | sed 's/%20/ /g'`
|
||||||
|
echo "Appel de la commande : <B>$QUERY_STRING</B> <BR><BR>"
|
||||||
|
echo "en tant que utilisateur $(whoami)<BR>"
|
||||||
|
echo "<code>"
|
||||||
|
# On introduit les sauts de ligne, nécessaires en HTML
|
||||||
|
# $QUERY_STRING | sed 's/$/<BR>/'
|
||||||
|
echo "</code>"
|
||||||
|
echo "</P>"
|
||||||
Reference in New Issue
Block a user