From ralf@carlet.de Fri Jun 27 20:50:31 2003 From: Ralf Carlet To: users-de@lists.opensuse.org Subject: isdnctrl via PHP aufrufen (Suse 7.3) Date: Fri, 27 Jun 2003 22:50:27 +0200 Message-ID: <3EFCAE13.4040405@carlet.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4485254318907765100==" --===============4485254318907765100== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Hallo Freunde des Pinguins! Nachdem mein Wohnungs-Router mittlerweile recht anständig läuft möchte den Auf- und Abbau der ISDN-Wählverbindung etwas komfortabler machen. Dazu möchte ich ein Menü bauen, welches ich im Browser anzeigen und bedienen kann. Da hier Apache läuft habe ich mir also ein kleines Menü "start.htm" gebaut welches die beiden Links auf "Internetverbindung starten" (verlinkt auf ./isdn_start.php) und "Internetverbindung beenden" (verlinkt auf ./isdn_stop.php) enthält. Die beiden PHPs (ich nehme jetzt mal nur Internetverbindung starten, ist beim beenden ohnehin analog) funktionieren leider nicht wie gewünscht. isdn_start.php sieht so aus: ISDN-Verbindung starten \n"; ?> Eine Verbindung wird aber nicht aufgebaut. Als Ergebnis gibt das Skript "126" aus. Führe ich zum Testen mittels passthru "ls -l" oder "ls -l /usr/sbin" aus, dann erhalte ich eine korrekte Ausgabe. Ich vermute, das der User WWWRUN (der führt die Skripte aus oder?) nicht isdnctrl benutzen darf. Auf einer der Webseiten die ich gefunden habe fand ich das Stichwort "suexec". Mittels suexec -V kann ich sehen, daß auf meinem Rechner dieses Programm offenbar installiert ist: suexec -V -D DOC_ROOT="/usr/local/httpd/htdocs" -D GID_MID=96 -D HTTPD_USER="wwwrun" -D LOG_EXEC="/var/log/httpd/suexec.log" -D SAFE_PATH="/bin:/usr/bin" -D UID_MID=96 -D USERDIR_SUFFIX="public_html" Andererseits ist PHP4 bei mir als Modul installiert (alles SuSE 7.3 von CD installiert,Apache/1.3.20 (Linux/SuSE) PHP/4.0.6). Im Web fand ich, daß suexec mit PHP als Modul nicht funktioniert. Frage: Wie kann ich es hinbekommen, daß isdnctrl ausgeführt wird? Muß ich dafür extra Apache neu kompilieren mit PHP als CGI und dann dieses suexec nutzen? Wäre mir nicht recht (->läuft bisher alles so fein). Außerdem ist mir nicht klar geworden wie man dieses suexec nutzt (man suexec hat mir da leider ebenso wenig geholfen wie die Seite auf der Apache-Website). Dem wwwrun Rechte auf isdnctrl zu geben wäre zwar einfach, ist aber sicher keine schöne und sichere Lösung oder? Vielen Dank fürs lesen und schon mal für Eure Tipps, Ralf -- :: Ralf Carlet :: Fon & Fax: +49-(0)700-RALFCARLET :: eMail: ralf(a)carlet.de :: Web: http://www.carlet.de :: () ascii ribbon campaign - gegen html mail :: /\ - gegen proprietäre attachments --===============4485254318907765100==-- From ratti@gesindel.de Sat Jun 28 18:35:12 2003 From: Joerg Rossdeutscher To: users-de@lists.opensuse.org Subject: Re: isdnctrl via PHP aufrufen (Suse 7.3) Date: Sat, 28 Jun 2003 20:36:06 +0200 Message-ID: <1056825366.486.66.camel@ratti.local> In-Reply-To: <3EFCAE13.4040405@carlet.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6168025737751125162==" --===============6168025737751125162== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Moin, Am Fre, 2003-06-27 um 22.50 schrieb Ralf Carlet: > Nachdem mein Wohnungs-Router mittlerweile recht anständig läuft möchte > den Auf- und Abbau der ISDN-Wählverbindung etwas komfortabler machen. > Dazu möchte ich ein Menü bauen, welches ich im Browser anzeigen und > bedienen kann. Ich habe ein ähnliches Problem gerade gelöst, indem ich einen kleinen Umweg über perl gegangen bin. Mein perl-script "als_chef.pl" sieht sinngemäss so aus: #!/usr/bin/perl -w use strict; use warnings; print `/usr/bin/whoami`; Sinngemäß. Der Pfad auf "whoami" kann ein anderer sein. Mittels sudo und visudo kannst du jetzt das perl-Script freigeben für die Verwendung als root ohne Passwort. man sudo. Sobald dir das gelungen ist (Sorry, kein Beispiel, Rechner gerade nicht greifbar) kannst du dieses Script ausrufen mit sudo /pfad/zum/script/als_chef.pl ...und es wird korrekt "root" als aktuellen Usernamen ausgeben. Dieses Script kannst du aus php heraus aufrufen mit exec("sudo /pfad/zum/script/als_chef.pl", $rueck); Da das wahrscheinlich nicht auf Anhieb laufen wird, ist es sinnvoll, zum testen mit su su httpd (oder worunter auch immer dein Webserver läuft) unter der Identität des Servers sudo /pfad/zum/script/als_chef.pl auf evtl. Fehler zu prüfen. Wenn es nicht auf Anhieb rennt, lege ich dir auch sudo -k ans Herz. Bestimmt geht es eleganter - so habe ich es hinbekommen. Ach so, du solltest bei Problemen dein Enviroment prüfen, evtl. ist z.B. $PATH nicht so gesetzt, wie du glaubst und daher laufen die Suse-Scripte nicht (korrekt). Prinzipiell kannst du bestimmt den Umweg über perl weglassen und dirtekt auf das Script sudo'en. Ich finde es so handlicher. Gruß, Ratti -- -o) fontlinge | Font management for Linux | Schriftenverwaltung in Linux /\\ http://freshmeat.net/projects/fontlinge/ _\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/ --===============6168025737751125162== Content-Type: application/pgp-signature Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="signature.asc" MIME-Version: 1.0 LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjEuMi4yIChHTlUv TGludXgpCgppRDhEQlFBKy9lQVdDR2J2MTJ2MUFDd1JBaFU4QUo5UHZNZ2s2TDlmeEtGYU9Wb0hQ RGpmVTE4bXVRQ2RHMlV0CmJJMXI4bjExM09KV2k0ODlDMlo2bzMwPQo9MGpDOQotLS0tLUVORCBQ R1AgU0lHTkFUVVJFLS0tLS0K --===============6168025737751125162==-- From ralf@carlet.de Sun Jun 29 18:02:52 2003 From: Ralf Carlet To: users-de@lists.opensuse.org Subject: Re: isdnctrl via PHP aufrufen (Suse 7.3) Date: Sun, 29 Jun 2003 20:02:44 +0200 Message-ID: <3EFF29C4.40209@carlet.de> In-Reply-To: <1056825366.486.66.camel@ratti.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8246793484219714049==" --===============8246793484219714049== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Hallo Jörg! Joerg Rossdeutscher schrieb: > > Am Fre, 2003-06-27 um 22.50 schrieb Ralf Carlet: > >>Nachdem mein Wohnungs-Router mittlerweile recht anständig läuft möchte >>den Auf- und Abbau der ISDN-Wählverbindung etwas komfortabler machen. >>Dazu möchte ich ein Menü bauen, welches ich im Browser anzeigen und >>bedienen kann. > > Ich habe ein ähnliches Problem gerade gelöst, indem ich einen kleinen > Umweg über perl gegangen bin. > > Mein perl-script "als_chef.pl" sieht sinngemäss so aus: Ok, dafür hab ich ein Shellskript gebaut, paßt ja schon mal :-) > [...] > Mittels sudo und visudo kannst du jetzt das perl-Script freigeben für > die Verwendung als root ohne Passwort. man sudo. Prima Hinweis, danke! Hab ich eben installiert von den CDs und mal die Manpage gelesen. Nur visudo find ich "doof", weil ich die komischen Befehle nicht kenne....naja, eben mal reinsehen bis es klappt ;-) > [...] Dieses Script kannst du aus php heraus aufrufen mit > > exec("sudo /pfad/zum/script/als_chef.pl", $rueck); Ja oder einem der vier anderen Mechanismen (das hab ich ja schon gelernt !). Ich glaub passthru ist für mich passend. Vielen Dank für den Tipp, bei Problemen damit oder wenn ichs gelöst hab schreib ich nochmal was dazu, Ralf -- :: Ralf Carlet :: Fon & Fax: +49-(0)700-RALFCARLET :: eMail: ralf(a)carlet.de :: Web: http://www.carlet.de :: () ascii ribbon campaign - gegen html mail :: /\ - gegen proprietäre attachments --===============8246793484219714049==-- From ralf@carlet.de Mon Jun 30 19:20:16 2003 From: Ralf Carlet To: users-de@lists.opensuse.org Subject: Re: isdnctrl via PHP aufrufen (Suse 7.3) Date: Mon, 30 Jun 2003 21:20:04 +0200 Message-ID: <3F008D64.2020402@carlet.de> In-Reply-To: <1056825366.486.66.camel@ratti.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6052099886192408282==" --===============6052099886192408282== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Hallo Ratti und alle Interessierten! Joerg Rossdeutscher schrieb: > Am Fre, 2003-06-27 um 22.50 schrieb Ralf Carlet: > >>Nachdem mein Wohnungs-Router mittlerweile recht anständig läuft möchte >>den Auf- und Abbau der ISDN-Wählverbindung etwas komfortabler machen. >>Dazu möchte ich ein Menü bauen, welches ich im Browser anzeigen und >>bedienen kann. > > > Ich habe ein ähnliches Problem gerade gelöst, indem ich einen kleinen > Umweg über perl gegangen bin. > [...] > Mittels sudo und visudo kannst du jetzt das perl-Script freigeben für > die Verwendung als root ohne Passwort. [...] So hab ich es im wesentlichen jetzt auch gemacht. Ich habe sudo installiert und per Visudo (nachdem ich die wichtigsten Tastenbefehle rausbekommen hab, hihi) die /etc/sudoers editiert bzw. folgendes hinzugefügt: wwwrun 192.168.0.0/255.255.255.0=NOPASSWD: /usr/sbin/isdnctrl So kann wwwrun im lokalen Netz isdnctrl benutzen. So gaaanz glücklich bin ich da nicht mit (obwohl hier zu Hause wohl keine ganz so große Gefahr lauert wie in großen Unternehmensnetzen), aber etwas anderes fiel mir nicht ein. Ich möchte ihn noch dazu bekommen, daß er nur die Parameter dial, hangup und status annimmt, meine dazu hab ich in der man-Page was gesehen, aber dazu dann später... Ein Vorschlag der mich per PM erreichte war, wwwrun zur Gruppe uucp hinzuzufügen, aber da hatte ich diese Lösung bereits implementiert und ausserdem gefiel mir das irgendwie auch nicht soooo ganz. Oder ist sudo die schlechtere Lösung? Naja, vielen Dank jedenfalls, es läuft! Gruß, Ralf -- :: Ralf Carlet :: Fon & Fax: +49-(0)700-RALFCARLET :: eMail: ralf(a)carlet.de :: Web: http://www.carlet.de :: () ascii ribbon campaign - gegen html mail :: /\ - gegen proprietäre attachments --===============6052099886192408282==--