パスのみを埋める権限エラー

パスのみを埋める権限エラー

RHEL 7.xシステムにPython3で書かれたスクリプトがあります。このスクリプトのテスト中に、同じディレクトリのテキストファイルに追加される関数を作成しました。

ローカルディレクトリからスクリプトを実行すると、./pyscript.pyすべてが期待どおりに機能します。

しかし、いくつかのディレクトリよりも高いBashスクリプトでこれを実行しようとしていますが、うまくいかないようです。スクリプトの他の関数は実行されますが、テキストファイルに追加された最後の関数は実行されません。

スクリプト(およびtxtファイル)を所有しているユーザーとしてホームディレクトリからスクリプトを実行すると、スクリプトに権限エラーが発生します。ただし、スクリプトを実行するとsudoエラーは発生しませんが、テキストファイルに書き込まれません。

私のユーザーはbashスクリプトとPythonスクリプトの間のすべてのディレクトリに対するRW権限を持っています。

sudoローカルユーザーとして実行すると、テキストファイルに書き込めない理由のアイデアはありますか?

ベストアンサー1

私はこれを解決しました。問題は、別のディレクトリでスクリプトを実行すると、Pythonスクリプトが実行ディレクトリをローカルディレクトリとして扱うことです。だから私のコードには次のものがあります。

with open('myfile.txt', 'a') ...

実際のファイルを開こうとするのではなく、コマンドを実行しているディレクトリにないファイルにアクセスしようとしています。

問題を解決するには、テキストファイルのフルパスを使用してください。

おすすめ記事