Janni: Wie konfiguriere ich Apache

Hallo !
Ich habe folgendes Problem:
Ich möchte mit einem CGI-Programm auf die serielle Schnittstelle (/dev/ttySx) zugreifen. Der Webserver erlaubt dies aber nicht.
Wie bringe ich nun den Webserver dazu den Zugriff auf die Schnittstelle freizugeben.
Ich freue mich über jede Idee.

Mit sonnigen Grüßen

Janni

  1. Hi,

    Der Webserver erlaubt dies aber nicht.

    ich glaube nicht, dass der Server um Erlaubnis gefragt wird. Dieser startet ein externes Programm, wenn auch mit seinem Usernamen.

    Überprüfe also, ob der User, unter dem der Server läuft, Zugriff auf die Schnittstelle hat. Eventuell fehlen auch einfach nur Umgebungsvariablen; so tief gehen meine Unix-Kenntnisse leider nicht. Diese könntest Du ggf. in der httpd.conf setzen.

    Cheatah

    1. tach,

      ich glaube nicht, dass der Server um Erlaubnis gefragt wird. Dieser startet ein externes Programm, wenn auch mit seinem Usernamen.
      Überprüfe also, ob der User, unter dem der Server läuft, Zugriff auf die Schnittstelle hat. Eventuell fehlen auch einfach nur Umgebungsvariablen

      Richtig, dem Server selber wird da weder etwas erlaubt noch verboten. Zu einem Teil gilt das auch für Umgebungsvariablen, die du ihm ja auch übermitteln kannst/mußt, damit er sie an das zuständige Programm weiterreichen kann

      Die Frage ist, was an der seriellen Schnittstelle geschehen soll. Wenn da bloß das Modem dranhängt und konfiguriert werden muß, ist das ein gänzlich anderes Thema ...

      Grüße

      Christoph S.

    2. Hoi,

      Der Webserver erlaubt dies aber nicht.

      Überprüfe also, ob der User, unter dem der Server läuft, Zugriff auf die
      Schnittstelle hat. Eventuell fehlen auch einfach nur Umgebungsvariablen; so
      tief gehen meine Unix-Kenntnisse leider nicht. Diese könntest Du ggf. in der
      httpd.conf setzen.

      Soweit ich weiss, braucht man 'root'-Rechte, um auf Devices direkt zuzugreifen.
      Du kannst ja mal ein 'chmod g+rw /dev/device' versuchen und den Web-User mit
      in die entsprechende Gruppe nehmen. Allerdings wuerde ich mir drei mal ueberlegen,
      den Web-User in die Gruppe 'wheel' (oder 'root' unter Linux, AFAIK) zu packen.

      Alternativ kannst du natuerlich auch das SUID-Bit fuer das Script setzen. Der
      ausfuehrende Interpreter muss allerdings dann auch das SUID-Bit besitzen. Bei
      Perl waere das z. B. '/usr/bin/suidperl'. Du musst nur sicherstellen, dass das
      Script auch wirklich weitestgehend sicher ist.

      Gruesse aus dem schoenen LH,
       c.j.k