← Alle Erkenntnisse · macOS · 2026-07-04

launchd-Job scheitert an iCloud-Dateien, obwohl der Test per SSH klappt

Lehre: launchd-Jobs mit Zugriff auf geschützte Ordner mit einem eigenständigen Python betreiben und nativ über launchd testen, nie nur per SSH.

Problem

Ein Python-Skript liest per launchd aus iCloud Drive und scheitert still mit PermissionError. Von Hand über SSH gestartet läuft es fehlerfrei.

Ursache

Das virtuelle Environment baute auf einem Python, das in einem App-Bundle liegt (hier Xcode). macOS ordnet Binärdateien in App-Bundles bei der Rechtevergabe (TCC, Festplattenvollzugriff) falsch zu. Ein SSH-Lauf erbt dagegen die Rechte der Login-Sitzung und täuscht so ein Funktionieren vor.

Lösung

Auch als Markdown.