Direkt zum InhaltDirekt zur SucheDirekt zur Navigation
▼ Zielgruppen ▼

Humboldt-Universität zu Berlin - Digitale Medien

CGI-Skripte verwenden

Allgemeines

Inhaber von Studenten-Accounts dürfen keine eigenen CGI-Skripte auf dem Server ablegen.

Inhaber von Accounts mit Zugang zum Rechner www2.hu-berlin.de, dürfen eigene Skripte verwenden.

Um die Sicherheit auf dem Server zu erhöhen, laufen alle Scripte mit Hilfe von cgiwrap unter der Kennung des Benutzers.

Pfade/Dateinamen/Zugriffsrechte

Der Pfad zum Perl-Interpreter lautet: /usr/bin/perl

Dateien die auf .cgi oder .pl enden, werden in allen Verzeichnissen als CGI-Script interpretiert und ausgeführt.

Zusätzlich dazu werden alle Dateien (unabhängig von ihrer Endung), die in einem Verzeichnis mit dem Namen cgi/ oder cgi-bin/ liegen, als CGI-Script ausgeführt.

Die Dateien müssen mindestens die Zugriffsrechte 0555 bzw. u=rx,g=rx,o=rx, höchstens 0775 bzw. u=rwx,g=rwx,o=rx haben

Besonderheiten

Upload von Dateien

Wenn Dateien mit Hilfe von Scripten auf den Webserver hochgeladen werden, so sind die Zugriffsrechte auf diese Dateien aus Sicherheitsgründen sehr restriktiv angelegt. Nur der Benutzer hat das Recht diese Dateien zu lesen und zu beschreiben. Um anderen Benutzern, unter anderem auch der Webserversoftware, Zugriff auf diese Dateien zu gewähren, gibt es zwei Möglichkeiten:

  1. Nach dem Upload die Zugriffsrechte der Datei anpassen. Das geschieht am besten mit dem Befehl chmod, die Zugriffsrechte sollten 0664 bzw. u=rw,g=rw,o=r sein.
    Je nach verwendeter Programmiersprache ist die Syntax des Befehls unterschiedlich. Einige Beispiele sind:
    • Perl:
      chmod 0664, '/pfad/zur/datei';
    • PHP:
      chmod('/pfad/zur/datei',0644);
    • Python:
      chmod('/pfad/zur/datei',S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH)
  2. Am Anfang des Scriptes den Befehl umask mit dem Parameter 0002 aufrufen.
    Je nach verwendeter Programmiersprache ist die Syntax des Befehls unterschiedlich. Einige Beispiele sind:
    • Perl:
      umask 0002;
    • PHP:
      umask(0002);
    • Python:
      umask(0002)