duddits |
|
 |
 |
Anmeldedatum: 03.01.2006 |
Beiträge: 569 |
Wohnort: /proc |
|
|
 |
 |
 |
|
Hallo,
erstmal danke für deine schnelle Antwort. Ich habe mich erstmal in verschiedenen Dokumentationen eingelesen, daher die verspätete Rückmeldung.
Derzeit bin ich auch schon ein paar Schritte weiter Richtung Ziel. Ich hatte ich meinem oben versuchten Weg, vergessen die Daten direkt an den Prozess (hier su) weiter zu geben:
Code: | import java.io.*;
import java.util.*;
public class sutest {
public static void main(String[] args) {
try{
ProcessBuilder builder = new ProcessBuilder();
builder.command( "bash", "-c", "su" );
builder.directory( new File("/") );
Process p = builder.start();
PrintStream printer = new PrintStream(p.getOutputStream());
String str="my password";
printer.println(str);
printer.flush();
Scanner s = new Scanner( p.getInputStream() ).useDelimiter( "
Z" );
if (!s.hasNext()) {
Scanner sa = new Scanner(p.getErrorStream());
while (sa.hasNext()) {
System.out.println(sa.nextLine());
}
}
while (s.hasNext()) {
System.out.println( s.next() );
}
}catch(Exception ex){
ex.printStackTrace();
}
}
} |
Allerdings ändert das Ganze nichts an der Meldung.
Also, es scheint so, das su eine Überprüfung durchführt, ob es von einem Terminal gestartet wurde und aus welcher Shell heraus.
Diese findet aber anscheinend nicht an der Variabel statt, den diese habe ich richtig gesetzt (mit xterm^^).
Ich kann mich natürlich täuschen, daher bin ich auch auf der Suche nach dem Quelltext von su und auch den von der bash.
Jedoch konnte ich von keinen der beiden Programme, den Quelltext finden.
Ich hoffe einer von euch kann mir da weiter helfen.
Gruß
Daniel |
|