1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Brauche Hilfe zu launchd und afp mount

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Duck Dodgers, 22.12.09.

  1. Duck Dodgers

    Duck Dodgers Reinette de Champagne

    Dabei seit:
    06.12.09
    Beiträge:
    419
    ich habe einen launchd job eingerichtet, der ein commandline tool ausführt. Das tool benötigt zwingend admin Rechte, daher ist es in /Library/LaunchAgents installiert. Problem ist nun ,dass ich auch ein afp laufwerk mounten muss! Da ich das passwort vorher nicht kenne, kann ich es auch nicht im code hinterlegen. Wie kann ich nun user & passwort speichern?

    User und Passwort habe ich schon im Schlüsselbund abgelegt und wenn ich das Tool per terminal starte, dann wird das afp laufwerk auch gemountet. Aber als admin mittels launchd klappt es nicht (Fehler 22). Achso ich nutze netfs_MountURLWithAuthenticationSync.

    Hoffe jemand kann mir helfen! Danke schön
    Robert
     
  2. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.893
    1) in die Ordner LaunchDaemons und LaunchAgents gehören nur die Startkonfigurationen für die Jobs (*.plist), nicht die Tools selbst. (Vorgesehene und abgesicherte Speicherorte für sowas wären /Library/PrivilegedHelperTools bzw /usr/local/{bin,sbin,libexec} )

    2) LaunchAgents laufen nicht im privilegierten, sondern im Benutzerkontext.

    Im Schlüsselbund des Benutzers, der die Aktion ausführt.
    Eine privilegierte, systemweite Option ruft nach dem System-Keychain.
     
  3. Duck Dodgers

    Duck Dodgers Reinette de Champagne

    Dabei seit:
    06.12.09
    Beiträge:
    419
    Habe mich wahrscheinlich nicht richtig ausgedrückt :( Ja, ich habe die plist in /Library/LaunchAgents installiert. Das Programm wird über ProgramArguments aufgerufen.

    Was genau meinst du damit? Laut Apple laufen jobs in ~/Library/LaunchAgents als benutzer und in /Library/LaunchAgents bzw. /Library/LaunchDaemon als root. Das ist auch meine Erfahrung.

    User und Passwort sind im aktuellen Benutzer Schlüsselbund gespeichert. Habe auch einen Eintrag im System Schlüsselbund gespeichert, aber das hilft nicht.

    Wenn ich mein Programm als root im Terminal ausführe funktioniert es, aber wenn ich es als launchd job laufen lasse, dann kann ich mich nicht mit dem afp laufwerk verbinden. Wahrscheinlich werden launchd jobs mit einem anderen login ausgeführt? id gibt mir aus, dass der login user _spotlight ist.

    Schöne Grüße
    Robert
     
  4. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.893
    Da hast du was missverstanden. Oder diese Passage übersprungen:
    If you are running per-user background processes for Mac OS X v10.4 and later, launchd(8) is also the preferred way to start these processes. These per-user processes are referred to as user agents. A user agent is essentially identical to a daemon, but is specific to a given logged-in user and executes only while that user is logged in.
    LaunchDaemons laufen als root.
    LaunchAgents laufen immer im Benutzerkontext (bei dessen Anmeldung).
    Der einzige Unterschied der Agents im Benutzer- oder der im globalen Library-Ordner ist die Frage, ob der Job nur bei einem ganz bestimmten, oder bei allen Benutzern ausgeführt wird.
     
  5. Duck Dodgers

    Duck Dodgers Reinette de Champagne

    Dabei seit:
    06.12.09
    Beiträge:
    419
    Achso, das verstehe ich jetzt. Besten Dank :) Da muss ich wohl was in meinem Programm umbauen ...
     

Diese Seite empfehlen