Mod-securityログにアクセスできないApache2サーバーがあります。
[email protected]:~$ apachectl -V
AH00526: Syntax error on line 196 of /etc/modsecurity/modsecurity.conf:
ModSecurity: Failed to open the audit log file: /var/log/Apache2/modsec_audit.log
Action '-V' failed.
The Apache error log may have more information.
[email protected]:~$ Sudo ls -la /var/log/Apache2/modsec_audit.log
-rw-rwxrwx 1 root www-data 101792 Oct 22 16:37 /var/log/Apache2/modsec_audit.log
誰もが(所有者、グループ、その他)ログファイルを開く権限を持っているので、私は少し戸惑っています。
編集:
[email protected].:/var/log/unattended-upgrades$ Sudo -u www-data touch /var/log/Apache2/modsec_audit.log
touch: cannot touch '/var/log/Apache2/modsec_audit.log': Permission denied
これは見知らぬ人になります...
edit2:
[email protected]:/var/log/unattended-upgrades$ Sudo ls -la /var/log/Apache2/
total 1015752
drw-r--r-- 2 root adm 12288 Oct 22 15:55 .
edit3:
ls -la /var/log|grep Apache
drw-r--r-- 2 root adm 12288 Oct 22 15:55 Apache2
Modsec_audit.logに触れることはできませんでした。
Sudo -u www-data touch /var/log/Apache2/modsec_audit.log
ログディレクトリはroot:admに属しているためです。 www-dataはルートではなく、おそらくグループadmに属しています。グループおよびその他は、ログディレクトリでのみ読み取ることができます。実際に書き込むことができるのはroot:admだけです。
CentOS 7で同じ問題が発生しました。メインのhttpdプロセスがrootとして開始され、Apache:apacheとして実行されている多数の子プロセスが生成されます。 Debian/Ubuntuでは、Apacheとwww-dataの違いを除いて、同じである必要があります。
ここで、CentOS 7では、rootとしてapachectl、httpdなどのみを実行できます。それ以外の場合は、同じ「構文エラー」が発生します。また、これはmod_securityがインストールされている場合にのみ発生します。
これは基本的にapachectl/httpd/etcです。構文エラーがないか構成を確認するために非特権ユーザーとしてmod_securityを呼び出すが、mod_securityは明らかにセキュリティを真剣に受け止めており、そうする権限のない呼び出し元ユーザーに代わってログファイルを開くことができません。
だから、ただ走る
Sudo apachectl -V
または、