😪
[Mac] launchctl で起動した shell script が外部ストレージにアクセスできない
mac で自作した shell script を launchctl で起動したら、なぜか出力できなかった。
そんなことありませんか。あったんです。
通常の drive は問題ないんですが、外部ストレージなどに shell script から出力するような場合。例えば、curl でダウンロードしてきたファイルを外部ストレージに保管しようとすると
curl: (23) Failure writing output to destination
こんな感じになります。ぇぇっと思ったら、いつの間にか強固になっていた Security 機能で阻まれていました
shell本体に Security & Privacy の Full Disk Access を付与しよう
まぁちょっと考えたらわかるんですが、要するに Full Disk Access(そこまでいらないんだけど) の権限がなかったからです。ほんとは Files and Folders くらいでいいんだけど。
では、該当の shell script をFull Disk Access へ入れればいいかというと「入れられない」。
答えは「shell scriptを実行する shell プログラムを登録する」でした。
bash で起動されるようなスクリプトなら /bin/bash が該当します。

要するに、そういうこと。
"bash" request to allow Full Disk Access … - Apple Community
Discussion