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.