instructions et script
This commit is contained in:
23
Readme.md
23
Readme.md
@@ -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
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