Auf Linux ‚isdnctrl‚ per cgi-script ausführen??
Martin Passing
- perl
Hallo,
ich möchte auf einem Intranet-Server (Linux) über ein per Browser erreichbares perl-script die ISDN-Verbindung zum Internet auf- und abbauen.
Meine Frage dazu wäre, wo und wie ich einstellen kann, daß das Script diese Operation durchführen darf??
Martin
Hallo,
ich möchte auf einem Intranet-Server (Linux) über ein per Browser erreichbares perl-script die ISDN-Verbindung zum Internet auf- und abbauen.
Meine Frage dazu wäre, wo und wie ich einstellen kann, daß das Script diese Operation durchführen darf??
Hm, also, das Problem ist warscheinlich, daß nicht jeder User die dazu nötigen Rechte besitzt. Er muß Rechte an /dev/isdnctrl und /dev/isdninfo besitzen. Da gibt es 2 Möglichkeiten. Entweder du stellst deinen Webserver so ein, daß er auch als Root CGI-Programme aufrufen darf, oder du legst einen neuen Benutzer an, und gibst ihm die beiden Devices und erlaubst dem Benutzer, isdnctrl auszufürhen. Was auch noch möglich wäre, wäre, dem Benutzer vom Webserver die beiden Devices und isdnctrl zu geben. Ist bei Suse Linux glaube ich wwwrun und bei Redhat httpd oder apache. DAnn darf aber jedes CGI-Programm an deiner ISDN-Verbindung was ändern. Wenn du nicht willst, daß jedes CGI-Programm deine ISDN-Verbindung verändern darf, mußt du Suexec verwenden. Sag mir mal, für welche der Möglichkeiten du dich entscheidest, und ich geb dir dann ne genaue Anleitung. Ich selber habe mich dafür entschieden, einen neuen Benutzer anzulegen.
Hallo,
ich möchte auf einem Intranet-Server (Linux) über ein per Browser erreichbares perl-script die ISDN-Verbindung zum Internet auf- und abbauen.
Meine Frage dazu wäre, wo und wie ich einstellen kann, daß das Script diese Operation durchführen darf??Hm, also, das Problem ist warscheinlich, daß nicht jeder User die dazu nötigen Rechte besitzt. Er muß Rechte an /dev/isdnctrl und /dev/isdninfo besitzen. Da gibt es 2 Möglichkeiten. Entweder du stellst deinen Webserver so ein, daß er auch als Root CGI-Programme aufrufen darf, oder du legst einen neuen Benutzer an, und gibst ihm die beiden Devices und erlaubst dem Benutzer, isdnctrl auszufürhen. Was auch noch möglich wäre, wäre, dem Benutzer vom Webserver die beiden Devices und isdnctrl zu geben.
Genau so wollte ich das eigentlich machen, aber ich weiß nicht wie!
Schon mal vielen Dank für Deine Hilfe,
Martin
Hm, also, das Problem ist warscheinlich, daß nicht jeder User die dazu nötigen Rechte besitzt. Er muß Rechte an /dev/isdnctrl und /dev/isdninfo besitzen. Da gibt es 2 Möglichkeiten. Entweder du stellst deinen Webserver so ein, daß er auch als Root CGI-Programme aufrufen darf, oder du legst einen neuen Benutzer an, und gibst ihm die beiden Devices und erlaubst dem Benutzer, isdnctrl auszufürhen. Was auch noch möglich wäre, wäre, dem Benutzer vom Webserver die beiden Devices und isdnctrl zu geben.
Genau so wollte ich das eigentlich machen, aber ich weiß nicht wie!
Schon mal vielen Dank für Deine Hilfe,
Also, du brauchst, wenn du dich dafür entschließt, daß dein Webserver das CGI-Programm unter einem anderen Benutzer ausführen soll, Suexec. Das ist beim Apache standartmäsig dabei, ist aber AFAIK nicht standartmäsig aktiviert. Dann mußt du den Apache neu kompilieren. Bei ner Suse-Distribution würde ich configure die folgenden Parameter geben:
./configure --enable-suexec --suexec-caller=wwwrun --suexec-docroot=/usr/local/apache/htdocs
Dann noch kompilieren und installieren. Dann hast du das schwieriegste schon geschaft. Wenn du das hast, erklär ich dir, wie es weiter geht.
... Was auch noch möglich wäre, wäre, dem Benutzer vom Webserver die beiden Devices und isdnctrl zu geben.
Genau so wollte ich das eigentlich machen, aber ich weiß nicht wie!
Schon mal vielen Dank für Deine Hilfe,
Also, du brauchst, wenn du dich dafür entschließt, daß dein Webserver das CGI-Programm unter einem anderen Benutzer ausführen soll, Suexec.
Es würde mir doch eigentlich reichen, wenn der Webserver die Rechte hat, oder ist das nicht möglich??
Da fällt mir noch ein, du könntest mal versuchen, dem Script das +s Attribut zu geben. Dann sollte es auch immer unter seinem Besitzer ausgeführt werden. Ich habs aber noch nicht ausprobiert.