GarretCafe

こんなご時世こそ、自分の考えを書いてみよう

automatorでPythonを実行すると、"Operation Not Permitted"が出てくる

   

Code 1076536 1280

昨日、ブログ用にaタグを簡単に作れるようにするworkflowを公開しました。
automatorを使って、URLからHTMLのリンクタグを自動で作れるようにした

作って実行している最中、なんだかいろいろなエラーに出会ったので、その中で一番致命的だった、主題のエラーについて、対策を書いておこうと思います。

エラーの症状

workflow内で、下記のようにPythonファイルを実行しようとすると、"Operation Not Permitted"とエラーが表示され、動作が止まりました。

/Users/(ユーザー名)/.pyenv/shims/python /Users/(ユーザー名)/Documents/CODE/makeLink.py

エラーの対策

workflow内にPythonコードを格納することで、エラーが表示させないようにしました。

スクリーンショット 2021 06 01 20 30 44

workflowを右クリックしてオプションを表示させ、『パッケージの内容を表示』を選択します。

スクリーンショット 2021 06 01 20 26 52

その後、このように.pyファイルを格納してリンクをすげ替えれば、エラーが出なくなりました。

原因調査

パーミッションが原因ということで、それっぽいワードでググってみると、下記の記事がひっかかりました。
要約すると、SIPというセキュリティ機能が働いて、アクセスが拒否されるということ。
回避するためには、該当のアプリにフルディスクアクセスを許可すれば良いということでした。

やってみるとうまくいくものの、違うアプリが全面にある状態で、workflowを起動すると、またアクセスが拒否されました。
そのアプリに今後フルディスクアクセスを許可すると、うまくいくようになる。

ということは、実行可能性のあるアプリを全部フルディスクアクセスを許可すれば解決ということになるが、それではセキュリティがガタガタ、ということで、やめました。

そんなこんなで、色々調べ、今回の解決策に辿り着きました。

まとめ

とりあえず解決してよかった。

得体の知れないエラーを解決できると、達成感ありますよね。何もエラー起きないのが一番ですけど。