Squid がログファイルを開けない理由
パスを構成する各要素を調べ、ディレクトリの通過・既存ファイルへの追記・新規作成を区別してから権限を見直します。
access_log stdio:/srv/squid-logs/access.log logformat=squid上の Squid 6 の stdio ロガー設定例では、変更を加えずにパスを確認します。
namei -l /srv/squid-logs/access.log| 操作 | 必要な権限 |
|---|---|
| 親ディレクトリのパスをたどる | 各ディレクトリの検索/実行権限 |
| 既存ログへの追記 | パスの通過権限とファイルの書き込み権限 |
| 存在しないログの作成 | 加えて、直接の親ディレクトリへの書き込み権限 |
実際に書き込むプロセスの実行ユーザーと、パーミッションのモードビットおよび ACL を照合します。stdio は Squid を通じて書き込み、daemon のログ出力は補助プロセスを使います。ローテーション時の名前変更や置き換えには、別のディレクトリ権限が必要になる場合があります。
拒否の原因になっている要素を修正します。通過するだけなら、すべての上位ディレクトリに書き込み権限は必要ありません。通常の権限で足りているなら、インストール先やキャッシュのディレクトリツリー全体の権限を再帰的に広げるのではなく、サービスのセキュリティポリシーによる拒否を調べます。