Filesystem-Zugriff von Background-Scripten blockiert

pucicu

Neues Mitglied
Thread Starter
Mitglied seit
11.04.2007
Beiträge
42
Hallo,
ich habe ein shell-script (zsh), in dem ich ein paar Abfragen mache, einen ssh-Tunnel erzeuge und dann per rsync das User-Verzeichnis auf einen externen Server synce (als externes Backup – hat mich schon gerettet). Das script wird per launchagent regelmäßig ausgeführt. Das mache ich schon seit Jahren so und bisher funktionierte das bestens.

Seitdem ich auf von Mojave auf BigSur umgestiegen bin, klappt es aber nicht. Wenn ich das script in einem Terminalfenster teste, klappt es ohne Probleme. Aber wenn es im Hintergrund per launchagent automatisch aufgerufen wird (mit meiner User-ID), dann ist das für das script das zu kopierende Verzeichnis leer (mit der Folge, daß rsync das externe Backup löscht). Das hat mich einige Zeit gekostet, das herauszufinden. Und ich kann das eigentlich nicht ganz verstehen. Aber es scheint so, daß im Hintergrund ausgeführte Prozesse erstmal nicht auf das Filesystem zugreifen dürfen.

Wie kann man das ändern? Ich hätte schon ganz gerne, daß das script per launchd automatisch und im Hintergrund ausgeführt wird.

Vielen Dank für Hilfe!
 

mj

Aktives Mitglied
Mitglied seit
19.11.2002
Beiträge
8.886
Du könntest versuchen launchd via Systemeinstellungen vollen Zugriff auf dein Home-Verzeichnis zu gewähren, die Binary liegt standardmäßig in /sbin.
 

pucicu

Neues Mitglied
Thread Starter
Mitglied seit
11.04.2007
Beiträge
42
Danke. Ich bin grad noch am weiter testen. Ich muß noch hinzufügen, daß das Vezeichnis, daß ich kopiere, auf einer externen Festplatte liegt. Mein homeverzeichnis wird offenbar erkannt. Aber nicht das auf der externen Platte.

Ich hatte auch schon in den Systemeinstellungen die Datenzugriffs-Rechte für die shell-skripte eingestellt. Für launchd noch nicht. Das probier ich auch mal.
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
56.648
Externe Platte im Standby und beim Zugriff dauert es zu lange die zu wecken?
 

pucicu

Neues Mitglied
Thread Starter
Mitglied seit
11.04.2007
Beiträge
42
Hab ich schon getestet. Sie ist online. Wenn ich das script direkt ausführe, geht es ja. Nur nicht im launchd-Modus. Ich bin am Verzweifeln.
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
56.648
Guck doch mal in die Logs, was launchd für einen Fehler meldet.
 

pucicu

Neues Mitglied
Thread Starter
Mitglied seit
11.04.2007
Beiträge
42
launchd selber meldet keine Fehler. Allerdings lasse ich jetzt noch die Fehler von dem script loggen und sehe da, daß es eine Menge "Operation not permitted"-fehler gibt. Immer wenn ich auf das Verzeichnis zugreifen will. Nehme ich ein anderes Verzeichnis, z. B. das Homeverz., gibt es nicht diese Fehler.
 

Schiffversenker

Aktives Mitglied
Mitglied seit
25.06.2012
Beiträge
11.804
Wer ist denn Eigentümer des externen Verzeichnisses, welche Rechte sind gesetzt? Vielleicht ACL?
Am besten im Terminal schauen, der finder ist da nicht besonders genau.
 

pucicu

Neues Mitglied
Thread Starter
Mitglied seit
11.04.2007
Beiträge
42
Danke für die Tips! Ich arbeite bei solchen Sachen immer im Terminal. Eigentümerrechte hatte ich auch schon im Verdacht, aber daran lag es nicht. Mittlerweile habe ich das Problem gefunden. Das Skript wird ja durch eine bestimmte shell ausgeführt (am Anfang des Skriptes mit
Code:
#!/bin/zsh
spezifiziert). Nur muß man halt dieser Shell auch die Dateifreigabe in den Systemeinstellungen geben. Es reicht nicht, es nur den Befehlen zu geben, die im Skript benutzt werden. Die shell selber braucht es auch.

So einfach also …

Aber diese paranoide Freigabe-Policy nervt schon irgendwie.
 
Oben