Met behulp van CGI kun je eenvoudig Linux commando’s uitvoeren. Je hebt hiervoor alleen maar CGI support voor je Apache webserver nodig. CGI support krijg je door de volgende commando’s uit te voeren:

sudo a2enmod cgi
sudo service apache2 restart

Vervolgens kun je een CGI script maken dat je kunt uitvoeren. Voor Debian zet je dit script in de ‘/usr/lib/cgi-bin’ directory. Verder moet je je script na het editten nog uitvoerbaar maken met het commando:

chmod +x <script.cgi>

In principe starten al je CGI scripts met de volgende regels:

#!/bin/bash
echo "Content-type: text/html"
echo ""

Vervolgens kun je HTML code gebruiken m.b.v. het ECHO commando. Als je een commando wilt uitvoeren dan gebruik je ‘$(commando)’.

Hieronder zie je een simpel CGI script als voorbeeld:

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html><head><title>Informatie"
echo "</title></head><body>"

echo "<h1>Informatie over host $(hostname -s)</h1>"
echo ""

echo "<h1>Geheugen Info</h1>"
echo "<pre> $(free -m) </pre>"
echo ""

echo "<h1>Netwerk Info</h1>"
echo "<pre> $(ifconfig) </pre>"
echo ""

echo "<h1>Gebruikers die zijn ingelogd</h1>"
echo "<pre> $(w) </pre>"
echo ""

echo "<center>Informatie gegenereerd op $(date)</center>"
echo "</body></html>"

Dit script voer je dan uit door het volgende commando in te geven in je web-browser:

http://localhost/cgi-bin/script.cgi

Dit leidt voor het bovenstaande voorbeeld tot de volgende output:




Wees je er wel van bewust dat je deze commando’s uitvoert onder de gebruiker waaronder je Apache process draait (default www-data). Verder moet je goed de gevolgen bedenken indien je CGI scripts vanaf internet zijn aan te roepen.