Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>AuthorizationExecuteWithPrivileges und timeout frage

AuthorizationExecuteWithPrivileges und timeout frage

Duck Dodgers07.09.0917:32
Servus,

ich habe nun einige Zeit das Netz durchsucht, aber irgendwie kann ich keine Lösung zu meinem Problem finden. Ich habe ein Cocoa app geschrieben, welches ein Helper tool über NSTask aufruft. Das HelperTool soll über admin rechte mehrmals hinter einander ein Unix tool aufrufen. Habe dazu Authorization Services implementiert und es funktioniert auch wunderbar. Aber das Problem ist, dass nach den 5 minuten timeout der User erneut das admin password eingeben muss. Ich habe auch AuthorizationRightSet probiert, aber das hat nichts geändert. Irgendwie muss es doch eine Möglichkeit geben, entweder den timeout zu verlängern oder den timeout zu deaktivieren bis das HelperTool fertig ist!

In den Apple References steht was von dem timeout und das man ihn ändern kann, aber ich habe dazu kein weiteren Hinweise gefunden, wie das geht! Hat da jemand eine Idee oder Erfahrungen? Ist das überhaupt möglich?

Schon mal besten Dank im voraus
Robert
0

Kommentare

Duck Dodgers09.09.0912:11
Hallo,

anscheinend kann mir leider keiner bei dem Problem helfen? Nutzen keiner Authorization Services? Oder hat eine Idee?

Schöne Grüße
Robert
0
Marcel Bresink09.09.0912:29
Den Timeout zu verlängern, bis das Helper-Tool fertig ist, ist nicht nötig, denn das Tool verliert sein gewährtes Recht nicht, auch wenn die Operation länger läuft.

Das ändert sich allerdings, wenn das Tool ein anderes Recht anfordert oder versucht, das gewährte Recht noch einmal zu verwenden. Dann muss wieder neu autorisiert werden und das ist so gewollt.

Man kann den Timeout theoretisch ändern, aber nicht temporär. Dazu müssen entsprechende Einträge für die einzelnen Rechte mit dem Schlüsselwort "timeout" in die Sicherheitsrichtliniendatenbank "/etc/authorization" geschrieben werden. Dabei muss man sehr aufpassen, denn das kann Auswirkungen auf das gesamte System haben. Wird die Datenbank hierbei beschädigt, kann das komplette Betriebssystem unbrauchbar werden.
0
Duck Dodgers09.09.0913:13
Hi Marcel,

vielen Dank für deine Antwort! Ok dann weiß ich zumindest, das es so wie ich es vor hatte nicht möglich ist. Dann muss ich wohl oder übel, das HelperTool selber aufrufen und kann dort mit system() meine Arbeit erledigen. Dachte es gäbe da eine "schickere" Lösung.

Frage mich aber nur, wie andere das machen, denn bei manchen apps und auch bei den Systemeinstellungen wird beim Start autorisiert (über den Dialog) und dann die ganze Zeit mit den Admin-Rechten gearbeitet. Auch nach mehr als 5 Minuten poppt nicht noch einmal der Autorisierungsdialog auf. Kannst du mir das auch erklären?

Schöne Grüße
Robert
0
Marcel Bresink09.09.0913:27
Kann ich nicht nachvollziehen. Bei den meisten Anwendungen gehen nach exakt 300 Sekunden "die Schlösser zu" und die Autorisierung verfällt.

Es gibt allerdings spezielle Rechte, die in der Sicherheitsrichtliniendatenbank mit einem Timeout von 1 Stunde oder gar 10 Stunden versehen sind. Das hängt von der Betriebssystemversion ab. Kann man ja in der authorization-Datei nachschauen.
0
Duck Dodgers09.09.0915:07
ok vielleicht habe ich das auch nur falsch in Erinnerung. Werde das mal ausprobieren bzw. beobachten. Besten Dank für die Antwort

Grüße
Robert
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.