Legen Sie die Anwendungseinstellungen für OS X so fest, dass keine Abfrage zur Eingabe des Administratorkennworts mehr erfolgt.

Legen Sie die Anwendungseinstellungen für OS X so fest, dass keine Abfrage zur Eingabe des Administratorkennworts mehr erfolgt.

Ich versuche, ein Applescript zu schreiben, das einige Aktionen an eine Anwendung (insbesondere Waterroof) sendet. Das Problem ist, dass die Anwendung mich regelmäßig nach dem Administratorkennwort fragt, wenn ich das gewünschte Einstellungsfenster öffne. Es funktioniert mit einer Zeitverzögerung, sodass es nicht danach fragt, wenn ich das Kennwort bereits in den letzten x Minuten eingegeben habe. Da ich mich nicht darauf verlassen kann, gefragt zu werden, kann ich nicht in Betracht ziehen, eine Pause einzulegen und das Kennwort als Teil des Skripts einzugeben.

Gibt es eine Möglichkeit, der App/dem Betriebssystem mitzuteilen, dass ich mit Administratorrechten bei der App angemeldet bleiben möchte und dass sie mich nicht danach fragen soll? Ich möchte diese Möglichkeit ausschöpfen, bevor ich versuche, im Code nach ihrer Existenz usw. zu suchen.

Antwort1

Soweit ich weiß, wird das Timeout für die Autorisierung in OS X (sofern richtig durchgeführt) in derRichtliniendatenbankbefindet sich unter etc/authorization, normalerweise programmgesteuert. Es sieht aus wie eine plist-Datei, und wenn ein Element keinen „Timeout“-Schlüssel hat, dann hat es kein Timeout.

Ich weiß, dass die Präferenz normalerweise im Code mithilfe der APIs von Apple festgelegt wird (wie in ApplesProgrammierhandbuch für Autorisierungsdiensteund dasFunktionReferenz).

Dies ist eine geschützte Datei. Verwenden Sie etwas wie, sudo pico /private/etc/authorizationum sie zu bearbeiten.

Der Eintrag in dieser Datei hat einen Titel mit einer Art Deskriptor „com.company.application.right“ oder etwas Ähnlichem (z. B. com.apple.itunes.copy, com.stackexchange.superuser.deleteuser) – der für jede Anwendung spezifisch ist, suchen Sie also danach. (Ich glaube, der Einfachheit halber ist er in alphabetischer Reihenfolge.)

Bildbeschreibung hier eingeben

Wenn es keinen solchen Eintrag gibt, dann holt sich die App die Autorisierung wahrscheinlich auf eine andere Art und Weise, die ich nicht kenne. Ich habe gerade versucht, einer App, die ich geschrieben habe, ein Timeout hinzuzufügen – es hat funktioniert. Ich habe es dann wieder gelöscht – und das Timeout war verschwunden. Ich vermute, es sollte in Ihrem Fall funktionieren.

Sie erwähnen ein Einstellungsfenster. Wenn es dabei um Systemeinstellungen geht, weiß ich auch nicht, wie es funktioniert. Es gibt keine Möglichkeit, dies über Applescript zu tun.

Bearbeiten: Wenn es keinen solchen Eintrag gibt

Eine Anwendung kann eine andere Möglichkeit zur Autorisierung verwenden, indem sie die mittlerweile veraltete und unsichere Methode verwendet AuthorizationExecuteWithPrivileges. Ich vermute, dass eine Anwendung verwendet, wenn sie keinen eigenen Eintrag in der Richtliniendatenbank hat AuthorizationExecuteWithPrivileges. Es kann sein, dass die Anwendung, mit der Sie arbeiten möchten, diese Methode verwendet.

Für diese spezielle Methode gibt es einen Eintrag in der Richtliniendatenbank mit dem Namen system.privilege.admin. Beachten Sie jedoch, dass das Ändern dieses Eintrags und das Löschen des Timeouts wahrscheinlich das Timeout für alle Anwendungen ändert, die verwenden AuthorizationExecuteWithPrivileges, und nicht nur für die, die Sie ändern möchten. Es könnte einen Versuch wert sein.

Bildbeschreibung hier eingeben

verwandte Informationen