Ich versuche, einen TeamCity Build Agent auf einem Mac Mini Server mit 10.7.3 einzurichten. Ich habe es erfolgreich zum Laufen gebracht und erstellt, aber nur, wenn ich mich anmelde und den Prozess manuell starte.
Wir möchten, dass der Prozess beim Start gestartet wird, was einfach zu bewerkstelligen ist, indem eine Plist-Datei im Ordner /Library/LaunchDaemon abgelegt wird. Leider funktioniert dies bei uns nicht, da der Prozess als root und nicht als unser angegebener Benutzer gestartet wird. Wir würden es wirklich vorziehen, die Dinge auf den Ordner des Benutzers zu beschränken und benötigen außerdem Zugriff auf einen Schlüsselbund, um die Mechanik der iOS-Codesignatur zu handhaben. Leider funktioniert die Verwendung von ~/Library/LaunchAgents nicht, da dies anscheinend erfordert, dass jemand das Terminal besucht und sich anmeldet – dies muss vom Booten aus gestartet werden und weiter ausgeführt werden, wenn der Benutzer abgemeldet ist.
Gibt es eine Möglichkeit, einen Prozess beim Booten als bestimmter Benutzer zu starten?
Sie können einfach als ein anderer Benutzer mit sudo -u
wie folgt ausgeführt werden:
#!/bin/sh
UZER=jsmith
sudo -u "$UZER" /path/to/program/you/want/to/run
exit 0
Ändern Sie einfach „jsmith“ in den entsprechenden kurzen Benutzernamen, speichern Sie das dann irgendwo als Skript und rufen Sie es von /Library/LaunchDaemons auf
Denken Sie daran, dass alle Dateien in /Library/LaunchDaemons root gehören müssen, um ausgeführt zu werden.
(Ich denke, das hat bmike vorgeschlagen)
Ich habe jedoch ein HOWTO geschrieben, um die automatische Anmeldung sicherer zu machen:
Terminally Geeky: Verwenden Sie die automatische Anmeldung sicherer
Die Zusammenfassung lautet wie folgt:
Was es macht:
Sobald Sie sich anmelden, bringt Sie launchd zurück zum Anmeldebildschirm mit:
"/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession" -suspend
Beachten Sie, dass alles eine lange Zeile ist.
Wenn man bedenkt, dass jemand mit physischem Zugang zu Ihrem Computer viele potenzielle Exploits hat, halte ich dies für relativ sicher, aber natürlich muss jeder seine eigene Entscheidung treffen. Ich betreibe es in meinem kleinen Büro, aber mein iMac steht in meinem privaten Büro, das ich abschließen kann, wenn ich nicht da bin.
Beachten Sie auch, dass die automatische Anmeldung mit FileVault 2 nicht funktioniert .
Der einfache Weg besteht darin, diesen Benutzer so einzustellen, dass er sich automatisch anmeldet, und dann den Bildschirm mit aktiviertem schnellen Benutzerwechsel zu sperren. Andernfalls müssen Sie die harte Arbeit leisten, einen Benutzer auf Administratorebene zu erstellen und Ihr Skript oder Ihren Prozess mit einem bestimmten Benutzer starten zu lassen.
Prozesse, die gestartet werden, bevor die Benutzeranmeldesitzung beginnt, sind funktional root und müssen sich selbst herabstufen, wenn Sie nicht möchten, dass sie als root ausgeführt werden. Apple macht das mit dem Webserver und dem Benutzer _www und auf der Client-Seite laufen einige Prozesse als Benutzer none, _spotlight und , _mdnsresponder.
sudo
den Benutzer auswählt, anstatt ihn als geerbte Aufgabe zu starten. Ich habe das in letzter Zeit nicht ausprobiert, aber es ist schnell und könnte einfach funktionieren.
Wyatt Barnett
TJ Luoma
security
Tool ausprobieren, um zu sehen, ob Sie auf diese Weise darauf zugreifen können.Wyatt Barnett