Hallo allerseits. Bin der Neue hier und hoff hiermit nen hilfreiches Forum gefunden zu haben! :-)
<br>
Und schon gehts los! Folgendes Szenario:
<br>
Ich möchte mit Runtime.exec() unter Linux den pppd starten, welcher als der Gruppe "dialout" besitzt und da ich dem pppd die Ausführungsrechte für "others" natürlich nehmen möchte, sollen nur noch User dieser Gruppe diesen steuern können... Also RechteLevel: 750
<br>
Nun ist mein User also in dieser Gruppe und ein starten des pppd von Console aus funktioniert wunderbar.
Java allerdings meint, dass es den pppd durch fehlende Rechte nicht ausführen darf und wirft eine IOException auf den Versuch hin...
<br>
Dieser Fehler ist bekannt existiert nun wie ich les seit etwa 7Jahren:
<a href="http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4052517" target="_blank">Tolle Sache...</a>
<br>
<br>
Eine Möglichkeit wäre nun, wie dort auch zu lesen ist, die dem pppd die Hauptgruppe des Users zu geben: "users" in meinem Fall...
Das kann aber wohl kaum ne Lösung sein, da dann wieder fast jeder an den pppd rankommt und dieser nunmal in "dialout" o.ä. gehört...
<br>
Nun steht dort ich möge den Umweg über "/bin/sh" gehen... Genau DIES versuch ich nun leider vergeblich so wie ichs gern haben möchte!
Denn das richtige Command zum umgehen des Bugs wäre somit in meinem Falle(und auf der Console funktionierts auch so prima):
/bin/sh -c "/usr/sbin/pppd call slylcr.tmpl"
<br>
Wenn ich nun aber folgendes ausführe...
Runtime.exec("/bin/sh -c \"/usr/sbin/pppd call slylcr.tmpl\"");
... dann meint er:
Starte pppd mit: /bin/sh -c "/usr/sbin/pppd call slylcr.tmpl"
PPPD-Error: call: -c: line 0: unexpected EOF while looking for matching `"'
PPPD-Error: call: -c: line 1: syntax error: unexpected end of file
<br>
folgendes dagegen...
Runtime.exec("/bin/sh -c \"echo\"");
... funzt...
Er scheint also in mit Java ausgeführt in den Hochkommas nur EIN argument zu mögen...
<br>
Daher würde ja zur Not folgendes dagegen funktionieren...
Runtime.exec("/bin/sh -c \"myPPPDStartScript.sh\"");
bzw. sogar(da ja Shellscript)
Runtime.exec("/bin/sh myPPPDStartScript.sh");
... NUR leider möcht ich nicht noch sinnlos nen Shellscript für sowas hinterlegen :-/
<br>
So...
Immer her mit den Ideen ;-)
Speziell geht es um den slyLCR (<a href="http://www.slylcr.de" target="_blank">www.slylcr.de</a>)
<br>
PS zum Forum: Ne geeignete Methode um seine Themen niederzuschreiben wär ganz praktisch, hab mein Post hier grad 4 mal editiert, bis alles passte, da leider nichtmal Links korrekt erkannt werden :-(
Wieso nicht wie in allen Foren BB-Tags o.ä. für Code etc. Developer sollten damit doch umgehen können ;-)
<br>
MfG
Björn
<br>
Und schon gehts los! Folgendes Szenario:
<br>
Ich möchte mit Runtime.exec() unter Linux den pppd starten, welcher als der Gruppe "dialout" besitzt und da ich dem pppd die Ausführungsrechte für "others" natürlich nehmen möchte, sollen nur noch User dieser Gruppe diesen steuern können... Also RechteLevel: 750
<br>
Nun ist mein User also in dieser Gruppe und ein starten des pppd von Console aus funktioniert wunderbar.
Java allerdings meint, dass es den pppd durch fehlende Rechte nicht ausführen darf und wirft eine IOException auf den Versuch hin...
<br>
Dieser Fehler ist bekannt existiert nun wie ich les seit etwa 7Jahren:
<a href="http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4052517" target="_blank">Tolle Sache...</a>
<br>
<br>
Eine Möglichkeit wäre nun, wie dort auch zu lesen ist, die dem pppd die Hauptgruppe des Users zu geben: "users" in meinem Fall...
Das kann aber wohl kaum ne Lösung sein, da dann wieder fast jeder an den pppd rankommt und dieser nunmal in "dialout" o.ä. gehört...
<br>
Nun steht dort ich möge den Umweg über "/bin/sh" gehen... Genau DIES versuch ich nun leider vergeblich so wie ichs gern haben möchte!
Denn das richtige Command zum umgehen des Bugs wäre somit in meinem Falle(und auf der Console funktionierts auch so prima):
/bin/sh -c "/usr/sbin/pppd call slylcr.tmpl"
<br>
Wenn ich nun aber folgendes ausführe...
Runtime.exec("/bin/sh -c \"/usr/sbin/pppd call slylcr.tmpl\"");
... dann meint er:
Starte pppd mit: /bin/sh -c "/usr/sbin/pppd call slylcr.tmpl"
PPPD-Error: call: -c: line 0: unexpected EOF while looking for matching `"'
PPPD-Error: call: -c: line 1: syntax error: unexpected end of file
<br>
folgendes dagegen...
Runtime.exec("/bin/sh -c \"echo\"");
... funzt...
Er scheint also in mit Java ausgeführt in den Hochkommas nur EIN argument zu mögen...
<br>
Daher würde ja zur Not folgendes dagegen funktionieren...
Runtime.exec("/bin/sh -c \"myPPPDStartScript.sh\"");
bzw. sogar(da ja Shellscript)
Runtime.exec("/bin/sh myPPPDStartScript.sh");
... NUR leider möcht ich nicht noch sinnlos nen Shellscript für sowas hinterlegen :-/
<br>
So...
Immer her mit den Ideen ;-)
Speziell geht es um den slyLCR (<a href="http://www.slylcr.de" target="_blank">www.slylcr.de</a>)
<br>
PS zum Forum: Ne geeignete Methode um seine Themen niederzuschreiben wär ganz praktisch, hab mein Post hier grad 4 mal editiert, bis alles passte, da leider nichtmal Links korrekt erkannt werden :-(
Wieso nicht wie in allen Foren BB-Tags o.ä. für Code etc. Developer sollten damit doch umgehen können ;-)
<br>
MfG
Björn
Comment