instructions et script

This commit is contained in:
2022-07-08 16:37:18 +02:00
parent 992125fd33
commit 2a11dd628f
2 changed files with 43 additions and 5 deletions

View File

@@ -1,15 +1,28 @@
# 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
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
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
View 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&eacute;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>"