権限なしで実行したいスクリプトを作成しています。スクリプトで発生したエラーをいくつかのログファイルに記録したいと思います。に手紙を書く権限がありません/var/log
。私のホームディレクトリに手紙を書きたくありません。
ランタイム情報がどこにあるかを記録できるユーザースペーススクリプトはありますか?潜在的なセキュリティ問題を引き起こすことなくスクリプトに関する情報を記録する最良の方法は何ですか/var/log
?スクリプトにuid / gidを設定することは躊躇されます。
ベストアンサー1
一般ユーザーとしてプログラムを実行することを決定した場合、そのログの自然な場所はホームディレクトリです。ホームディレクトリは、実行しているプログラムのログであれ他のファイルであっても、すべてのファイルを保存するために使用されます。
プログラムがシステムの一部として実行され、一般的な専用システムユーザーとして実行される場合、そのログのデフォルトの場所はです/var/log
。サブディレクトリを作成し、/var/log/myapp
アプリケーションがここに書き込むための適切な権限を付与します。
関連があり、オペレーティングシステムで許可されている場合は、ログファイルを追加専用としてマークします。ルートのみがこれを実行できます。この方法の利点は、アプリケーションが破損している場合、過去のログを削除できないことです。これは、破損のフォレンジック分析に非常に役立ちます。ログを回転させるには、ルートの介入が必要です。chown
これにより、アプリケーションはログファイルを開くことができなくなり、ファイルを記録し、rename
適切な所有権を持つ新しい追加の専用ファイルを作成してから、アプリケーションに新しい空のファイルを開くように指示できません。