2012-02-15 13 views
0

私はコマンドラインツールを書いています。そこで、/ Users/user_name/Libraryディレクトリにディレクトリを作成したいと思います。そのプログラムをターミナルからルートとして実行すると、すべてが問題ありませんが、そのツールをカップのバックエンドとして使用するときに問題が発生します(何かを印刷するときにルートとしても呼ばれます)。プログラムが呼び出されましたが、system.logファイルに次のエラーが見つかりました:sandboxd:deny file-write- *。私は新しいMac OS Xプログラマであり、どのように修正するのか分かりません。誰も私を助けることができますか?Mac OS Xアプリサンドボックスの問題

答えて

0

Snow Leopard cupsは、ユーザーの家にアクセスするなどの不正行為を防止するサンドボックス内で実行されているためです。お使いのOS Xのバージョンによっては、ユーザの自宅ではなく、別のディレクトリを使用して逃げることができます。ライオンではそれよりもさらに制限があります。サンドボックスルールはcupsバイナリに組み込まれています(sbスクリプトとは対照的に)ので、唯一の幸運は、サンドボックスに必要なものへのアクセスを特に許可するバージョンにカップを置き換える可能性があります(実際には、規則はcupsdCreateProfileで定義されています(cups/scheduler/process.c)。 AFAICTあなたのアプリケーションでは何もできません。なぜなら、サンドボックスは、あなたがしようとしていることをまったくしないように設計されているからです。

また、ルートとしてカップを実行しないようにすることもできます。サンドボックスはカップをルートとして実行する場合にのみ使用されるためです。

+0

自分の.appバンドルに書き込むこともできません。 – Vassilis

関連する問題