Deaktivieren von Startelementen, die eigenständig ausgeführt werden

9

Ich habe ein paar Apps gefunden, die sich beim Start selbst starten können, obwohl sie nicht an den üblichen Stellen angezeigt werden ...

- Login Items (in the Users preference pane)
- /Library/LaunchAgents
- /Library/LaunchDaemons
- /Library/StartupItems
- /System/Library/LaunchAgents
- /System/Library/LaunchDaemons
- /System/Library/StartupItems
- ~/Library/LaunchAgents
- ~/Library/LaunchDaemons
- ~/Library/StartupItems

Zumindest einige dieser Apps (z. B. Tag 1 und Pausen - beide aus dem Mac App Store) scheinen ein Element aus ihren eigenen internen LoginItemsOrdnern zu starten :

/Applications/Day One.app/Contents/Library/LoginItems/Day One Reminders.app
/Applications/Pauses.app/Contents/Library/LoginItems/PausesLauncher.app

Als gute Bürger können Sie mit beiden Apps das Start-bei-Anmelde-Verhalten deaktivieren. Es ist jedoch beunruhigend, dass dieses Verhalten nicht systemweit gesteuert werden kann, und ich möchte eine Möglichkeit zur systematischen Identifizierung / Steuerung diese Login-Elemente. Die (zweiteilige) Frage lautet also:

  • Was steuert tatsächlich, ob / wie diese app-spezifischen Startelemente aktiviert werden, und
  • Wie kann ich ein Inventar all dieser Login-Elemente erhalten?

[aus Gründen der Klarheit bearbeitet 2013-03-20 11:22 PT]

Dan
quelle
(Beachten Sie, dass dies kein Betrug von " Startelemente deaktivieren , die ausgeführt werden, obwohl sie in der Liste" Anmeldeelemente " deaktiviert sind " );)
Dan
Warum ist es Ihrer Meinung nach kein Duplikat (hilft zu verhindern, dass dieselben Antworten erneut angezeigt werden)? Und ich gehe davon aus, dass Sie dies mit bestimmten Anwendungen erleben. Können Sie diese bitte in Ihrer Frage auflisten?
Nohillside
Und ich denke, Sie verwechseln die Sache des ersten Tages. Das, was Sie oben aufgeführt haben, ist nur die Erinnerungs-App (Menulet), die gestartet wird, wenn Start beim Anmelden aktiviert ist. Es ist kein LaunchAgents / Daemons-Ordner mit Sandbox.
Nohillside
Danke für die Klarstellung. Ich kann mich bei der Diagnose irren, aber dort habe ich Aktivität gesehen, als ich die Aktion "Deaktivieren" beobachtet habe fs_usage, also habe ich angenommen, dass dies der Fall ist.
Dan
Und kein Betrüger, denn die andere Frage wurde mit der Standardliste der Loginitems beantwortet, die ich zu Beginn der Frage aufgelistet habe. Die Anwendungen, bei denen dies passiert (einschließlich des ersten Tages), werden nicht in meinen Anmeldeelementen oder in diesen Verzeichnissen
Dan

Antworten:

8

Der erste Tag scheint das Login-Element in /var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist zu speichern:

$ /usr/libexec/PlistBuddy -c 'Print _com.apple.SMLoginItemBookmarks:com.dayoneapp.dayone-agent' /var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist
book 0(UserslaurTorrents
                        Day One.apContentsLibrary
LoginItemsDay One Reminders.app $4HXh?kld ????$A????H???A?1M?$5DF7A03E-A7FB-3E80-B61D-F10CD8BF7B5D?/?0c75ae904b0f99cb3a794e7360629c822a0f4a14;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000002;0000000000641712;/users/lauri/torrents/day one.app/contents/library/loginitems/day one reminders.app??????D|@l 0 ? ? ? ?  0 <???????D

Wenn Sie dies in derselben Datei auf true ändern, wird Folgendes deaktiviert:

<key>com.dayoneapp.dayone-agent</key>
<dict>
    <key>Disabled</key>
    <false/>
</dict>
Lri
quelle
1
Schön - sieht so aus, als wäre das die Antwort. Ich bin immer noch verblüfft, warum dies nicht offensichtlich auftaucht: Es befindet sich nicht im Einstellungsbereich für Anmeldeelemente (zugegeben, es müsste einen neuen Abschnitt für alle Benutzer geben) ... nicht in einem der Startordner ... nicht einmal in Lingon. Woher wussten Sie aus Neugier, wo Sie suchen müssen?
Dan
Ich habe fseventer ausgeführt, als ich den ersten Tag zum ersten Mal eröffnet habe.
Lri
Vielen Dank, dass Sie uns Ihre Untersuchungsergebnisse mitgeteilt haben! Ich benutze manchmal auch fseventer für FS-Überwachungsanwendungen.
Porg
2

(Hier geht es nicht um die vom Benutzer sichtbaren Anmeldeelemente in den Systemeinstellungen für Benutzer und Gruppen.)

Der Inhalt / Library / LoginItems /, der im Anwendungspaket enthalten ist, scheint die Implementierung von Apples Ansatz für Sandbox-Apps zu sein.

Der Tipp von @ user495470 zum Speichern der Anmeldeelementreferenz in /var/db/launchd.db/ scheint in macOS 10.12 nicht mehr gültig zu sein

Die Richtung von Apple scheint in Richtung eines in sich geschlossenen Ansatzes zu gehen, bei dem LaunchDaemons, LaunchAgents und StartupItems in Zukunft möglicherweise nicht mehr zulässig sind, da Mac-Apps möglicherweise irgendwann in einer Sandbox gespeichert werden müssen (persönliche Vermutung, keine Tatsache). Auf der anderen Seite sind die CFPreferences-API und das Senden von AppleEvents zum Start veraltet ...

Ref:

Während es in der Vergangenheit einfach war, in den oben genannten Ordnern nach Informationen zum Start des Starts (per Dan) zu suchen, verbirgt dieses neue Sandbox-Modell, obwohl es theoretisch betrieblich sicherer ist, die Startfähigkeit einer App (oder eines Trojaners?) Vor allen normalen Benutzern und den meisten Superusern die wissen, in den Systemverzeichnissen zu suchen. Das Auffinden dieser versteckten Anmeldeelemente ist jetzt zu einem PITA (Schmerz in der App) geworden, bei dem Sie entweder durch den Anwendungsordner suchen oder App-Bundles manuell öffnen, indem Sie in / Contents / Library / nach einem "LoginItems" -Ordner und dessen Inhalten suchen. Für die Lösung auf Benutzerebene habe ich ein Tool gefunden, das die eingebetteten Anmeldeelemente des App-Bundles mit dem Namen CleanMyMac auflistet (Kann sie deaktivieren oder aktivieren. Seien Sie vorsichtig, holen Sie sich diese App nur von der Firma. Es gibt geknackte Versionen, die tatsächlich einen Virus übertragen, ähnlich wie Login Items jetzt funktioniert (Ironie).) CleanMyMac zeigt die Auswahl der Anmeldeelemente an

Beachten Sie auch, dass diese aktivierten oder deaktivierten Elemente nicht Teil der vom Benutzer sichtbaren "Anmeldeelemente" in den Systemeinstellungen "Benutzer und Gruppen" sind:

Wenn Sie wie ich sind und dies auf Codeebene arbeiten, finden Sie hier einen konsolidierten Leitfaden zur Implementierung (von Tim Schroeder 2013): Der Start bei Login Sandbox Project

William Cerniuk
quelle