Erkenntnisse
- rsync -a nimmt die Dateirechte mit — danach liefert der Webserver 403
Bei Web-Deploys mit rsync die Rechte am Ziel explizit setzen, nicht vom Quellrechner übernehmen. - launchd-Job scheitert an iCloud-Dateien, obwohl der Test per SSH klappt
launchd-Jobs mit Zugriff auf geschützte Ordner mit einem eigenständigen Python betreiben und nativ über launchd testen, nie nur per SSH. - Ein Dienst benutzt eine andere Version des Werkzeugs als die eigene Shell
Bei Werkzeug-Problemen in einem Dienst Pfad und Version immer im Aufrufkontext des Dienstes prüfen, nicht in der eigenen Shell.