Es scheint eine Menge falscher Informationen in diesen Antworten zu sein. Um andere Leute etwas Zeit zu sparen, poste ich meine eigenen Ergebnisse:
Vor allem, wie das Poster der Frage, habe ich auch die Situation, dass ich Berechtigungen innerhalb einer Java Anwendung zu erhöhen, benötigen .
Ich habe dies in zwei Skripte aufgeteilt. Das erste Skript wird von Java mit einigen Befehlszeilenparametern ausgeführt. Das zweite Skript führt alle Schritte aus, die Root-Berechtigungen benötigen. Die Idee ist natürlich, cocoasudo im ersten Skript zu verwenden, um das zweite Skript mit root-Rechten auszuführen.
Ich habe über die umfangreiche Protokollierung in separate Dateien bestätigt, dass der Skripte in der Tat tun, was ich wollte. Und sie funktionieren gut, wenn sie von der Kommandozeile aus manuell gestartet werden (natürlich mit normalen Benutzerrechten).
Wenn aus der Java-Anwendung gestartet, muss ich die cocoasudo Prompt bekommen, aber nichts passiert. Nicht einmal die erste Protokollausgabe des zweiten Skripts wird angezeigt.
Als ich das erste Skript ändern wieder zu verwenden osascript, mit der Bestätigung, dass alles so weit richtig ist, wie das Skript geht, ich habe nicht einmal eine Aufforderung, wenn es aus Java läuft.
Dies ist alles auf OS X Mountain Lion. Als würde Apple ein paar Sicherheitsmechanismen einbauen, die verhindern, dass Skripte mit root-Rechten aus Java ausgeführt werden.
Da Cocoasudo selbst tatsächlich läuft, bin ich geneigt zu denken, die Lösung ist etwas ähnlich wie Cocoasudo zu programmieren, aber die Durchführung aller übrigen erforderlichen Aktionen mit Cocoa API-Aufrufe. Dies kann dann auch mit Code signiert werden.
wenn ich MAMP öffnen, fragte ich bin um mein Passwort zu geben. Oder wenn ich einen pkg installiere .. was ist das pop-up-box in os x aufgerufen? – Johannes