getRuntime().exec() untersagen

kanon25

Mitglied
Hallo,

ich habe auf einem Windows Server das JDK mitsamt einer Java-IDE installiert. Die Benutzer können sich per RDP mit dem Server verbinden und dort die installierte Software nutzen.

Kann ich irgendwie verhindern, dass die Runtime ausgeführt werden kann?

Java:
Runtime.getRuntime().exec(string);

Danke


kanon25
 

hdi

Top Contributor
Die exec() Methode läuft durch den Security Manager. Dieser beinhaltet u.a. eine Methode checkExec() und liefert einen boolean zurück, ob die exec() Methode ausgeführt werden darf.

Dazu folgender Artikel:
Java security: How to install the security manager and customize your security policy - JavaWorld

Standardmässig ist allerdings kein Security Manager installiert. Wie das genau geht sollte in folgendem Artikel stehen:
Help -

Ich denke zumindest dass sich dein Vorhaben damit realisieren lässt.
 

kanon25

Mitglied
Hi,

Die exec() Methode läuft durch den Security Manager. Dieser beinhaltet u.a. eine Methode checkExec() und liefert einen boolean zurück, ob die exec() Methode ausgeführt werden darf.

Danke für die Antwort. Meine Recherchen haben ergeben, dass automatisch die Policy-Datei "jre/lib/security/java.policy" abgearbeitet wird. Nur habe ich bisher noch nicht rausgefunden, wie ich dort das Ausführen der Kommandozeile "cmd" unterbinden kann.


kanon25
 

hdi

Top Contributor
Ich glaube nicht dass du dort sowas einstellen kannst. Das ist ja ein Windows-Befehl, die Eingabeaufforderung kann man da doch sicherlich irgendwie sperren?
Also wenn ich dich jetzt richtig verstehe und du willst dass die User nicht das MS-Dos Fenster starten können, nun das hat wohl nix mit Java zu tun.
In dieser policy Datei verbietest du halt lediglich das Starten eines externen Programms innerhalb eines Java-Programms, mit den User-Tätigkeiten im Betriebssystem selber hat das nix am Hut
 

thE_29

Top Contributor
Schaut man sich den Source weiter und immer weiter an so kommt bei Java 1.5 mal das hier

Code:
String prog= cmdArray[0];
SecurityManager security = System.getSecurityManager();
if(security != null)
security.checkExec("prog");

Dh, du müsstest da alles eintragen was unterbinden werden soll, was imho ziemlich bescheuert ist..

Edit: Ok, das checkt ob executable..

Soooo

Du müsstest eigentlich nur einen SecurityManager setzen, weil dann zieht das java.policy File!

Mit dem hier zB würde man es erlauben:
Code:
permission java.io.FilePermission "<<ALL FILES>>", "execute";
Standardmäßig ist das nicht drinnen, dh, es würde nix ausführen lassen!

Willst du aber eine exe ausführen, so kannst du den kompletten Pfad angeben:
Code:
permission java.io.FilePermission "c:/WINDOWS/system32/notepad.exe", "execute";
Das würde notepad.exe ausführen lassen, wenn man es mit kompletten Pfad angibt!

Setzen tut man den Security-Manager mit Parametern beim Java starten (standardmäßig ist er deaktiviert).

-Djava.security.manager=default
= Securitymanager aktivieren

-Djava.security.debug=all
= Debug/Logging to stdout aktivieren

-Djava.security.policy=test.policy
= alternative policy Datei aktivieren!
 
Zuletzt bearbeitet:

kanon25

Mitglied
Danke schön!

Also müsste ich ja nur den Security Manager aktivieren.

Das Problem ist, dass meine Anwender in der IDE Zugriff auf die Optionen für den Java-Start haben und dort meine gesetzten Standardwerte überschreiben könnten.

Ideal für mich wäre eine Art Konfigurationsdatei à la Firefox (user.js), die der Administrator setzen kann und von einem normalen Benutzer nicht verändert werden kann. Gibt es sowas auch in Java?


Danke

kanon25
 

Empire Phoenix

Top Contributor
Also die haben zugang zu einer IDE und du willst denen bestimmte sachen verbieten? Lass die IDE auf User rechten laufen, und setzte die einfach entprechend, normalerweise müsste dann java whatever mit den selben rechten arbeiten, sprich wenn cmd.exe nciht gelesen werden darf ist ruhe ect.

Ich gehe davon aus was der Anwender über java nicht darf darf er auch anders nicht?!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Registry Autostart Eintrag ertstellen mit Java (Runtime.getRuntime().exec()) Allgemeine Java-Themen 0
Thallius Runtime.getRuntime().exec " escapen? Allgemeine Java-Themen 9
N Runtime.getRuntime().exec Problem mit find Allgemeine Java-Themen 3
I Runtime.getRuntime().exec Problem Allgemeine Java-Themen 4
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
Z Runtime.getRuntime().exec-Problem Allgemeine Java-Themen 4
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
X Wann ist Runtime.getRuntime().exec mit Copy fertig? Allgemeine Java-Themen 10
G Output eines über Runtime.getRuntime.exec gestarteten Jars Allgemeine Java-Themen 6
W Runtime.getRuntime().exec() Allgemeine Java-Themen 10
C JApplet und Runtime.getRuntime().exec() Allgemeine Java-Themen 2
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
L getRuntime.exec() Problem mit Hochkommata Allgemeine Java-Themen 3
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
K Probleme mit Runtime.getRuntime().exec Allgemeine Java-Themen 6
A Runtime.getRuntime().exec mit Warte auf Beendigung - Wie? Allgemeine Java-Themen 7
R Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
F Runtime.getRuntime().exec mit Linux und Leerzeichen Allgemeine Java-Themen 3
B Probleme mit Runtime.getRuntime().exec("cmd.exe") Allgemeine Java-Themen 4
M Runtime.getRuntime().exec(txt_rsync_option.getText()); Allgemeine Java-Themen 12
M Rückgabewert von Runtime.getRuntime().exec() Allgemeine Java-Themen 2
M Problem mit getRuntime().exec() Allgemeine Java-Themen 9
D Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 14
L Runtime.getRuntime.exec() Allgemeine Java-Themen 7
S Fehler von .getRuntime().exec(""); Allgemeine Java-Themen 5
X Problem mit Runtime.getRuntime().exec("cls"); Allgemeine Java-Themen 18
S Runtime.getRunTime().exec("jar cvf .) hängt sich auf Allgemeine Java-Themen 3
M Runtime.getRuntime().exec() - Fehler abfangen Allgemeine Java-Themen 5
B Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
G Runtime.getRuntime().exec("cmd /c START") Allgemeine Java-Themen 3
S Runtime.getRuntime()... Allgemeine Java-Themen 6
G Runtime.getRuntime() Allgemeine Java-Themen 10
W Aggregierter JaCoCo.exec erzeugen Allgemeine Java-Themen 0
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
M exec() funktioniert nicht Allgemeine Java-Themen 1
T Bluescreen bei Runtime.exec(); Allgemeine Java-Themen 8
R Exec. Jar läd Bilder nicht! Allgemeine Java-Themen 5
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
N Runtime.exec() Allgemeine Java-Themen 7
S exec( "cmd /c") aber Konsole soll offen bleiben Allgemeine Java-Themen 9
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
F Kleines Problem mit exec Allgemeine Java-Themen 14
J Runtime.exec setzt Fokus auf Frame Allgemeine Java-Themen 2
V Probleme mit Runtime.exec() Allgemeine Java-Themen 3
M Runtime.exec() - Performance / Frage zu Threads Allgemeine Java-Themen 5
T Runtime.exec() Allgemeine Java-Themen 3
N runtime.exec() Problem Allgemeine Java-Themen 6
A exec-Problem Allgemeine Java-Themen 11
lordcarlos Runtime exec und mplayer (linux) Allgemeine Java-Themen 11
K Runtime.exec mit Timeout Allgemeine Java-Themen 5
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
J Runtime.exec unter win vista? Allgemeine Java-Themen 10
J Unicode: cmd parameter (main args); exec params; filenames Allgemeine Java-Themen 2
F Problem mit Runtime.exec() Allgemeine Java-Themen 8
M Runtime.exec unter Vista (Administrator Rechte) Allgemeine Java-Themen 2
A exec()-Methode Allgemeine Java-Themen 7
N CMD, EXEC, Befehle senden Allgemeine Java-Themen 3
the[V]oid Ausführen von "javac" über Runtime.exec() Allgemeine Java-Themen 4
L mit exec() befehl ausführen ( OS X / Linux) Allgemeine Java-Themen 8
H Exec Problem Allgemeine Java-Themen 3
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
T Runtime.exec -> Prozesskontrolle abgeben ? Allgemeine Java-Themen 11
S Runtime.exec() berechtigungen Allgemeine Java-Themen 5
S Runtime.exec und X Umgebung Allgemeine Java-Themen 2
N mit exec windows runterfahren (mit -c "und grund text&q Allgemeine Java-Themen 3
M Exec Allgemeine Java-Themen 4
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
M Access lässt sich nicht über "exec(command)" start Allgemeine Java-Themen 3
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
P Copy mit Runtime.exec() unter Unix Allgemeine Java-Themen 4
T Probleme mit Runtime.exec in Jar File Allgemeine Java-Themen 2
M Runtime.exec unter Linux Allgemeine Java-Themen 11
N Perl Skript ausführen über exec Allgemeine Java-Themen 2
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
G JDK Version - exec Befehl Allgemeine Java-Themen 3
S dvbscan mit Runtime.getInstance().exec() ausführen ? Allgemeine Java-Themen 24
M Runtime.exec() => java.io.exception: too many open files Allgemeine Java-Themen 10
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
H gerRuntime().exec stürtz ab? Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben