Kann / usr / bin / security nicht verwenden, um das Kennwort über cron vom Schlüsselbund abzurufen

1253
Shane

Ich kann anscheinend nicht in der Lage sein, Passwörter mithilfe von / usr / bin / security erfolgreich vom Schlüsselbund abzurufen, wenn ich sie von der crontab-Seite meines Benutzers aus ausführen kann. Funktioniert gut in meinem Terminal.

Ich kann auch über die cron-Mail-Ausgabe sehen, dass alle USER, HOME und PATH in cron korrekt eingestellt sind.

Ich konnte feststellen, dass wenn es in cron läuft, es nur mein System-Schlüsselbund und nicht mein Benutzer-Schlüsselbund sieht:

 "/Library/Keychains/System.keychain" "/Library/Keychains/System.keychain" 

Ich habe dann / usr / bin / security angewiesen, den Keychain meiner Benutzer explizit zu verwenden, und jetzt bekomme ich keine Ausgabe, aber der Exit-Code ist 36.

#security error 36 Error: 0x00000024 36 CSSM_ERRCODE_OBJECT_ACL_REQUIRED 

Ich kann nicht herausfinden, was das bedeutet.

Ich habe meinen PATH in cron angegeben und versucht, / usr / bin / security von einer bash-login-Shell aus über auszuführen bash -l -c /usr/bin/security...

Hier ist der Cron-Befehl, den ich ausführte:

bash -l -c '/usr/bin/security find-generic-password -g -a myusername -s test_vault /Users/myusername/Library/Keychains/login.keychain 2>&1 ; echo $?' 

Die Mail, die ich von cron erhalte, zeigt, dass der PFAD erfolgreich abgeholt wird.

Irgendwelche Ideen? Vielen Dank!

2

1 Antwort auf die Frage

3
Shane

Es sieht also so aus, als würde ich versuchen, dies in meiner crontab auszuführen, da cron selbst als root läuft, durfte es trotzdem nicht auf meine Schlüsselbunde zugreifen.

Ich habe diesen Blogeintrag gefunden, in dem über die Verwendung von launchd anstelle von Jobs gesprochen wird, und mein Job funktioniert jetzt problemlos über launchd! :)