###前提・実現したいこと
下記の /etc/logrotate.d/httpd において postrotate ~ endscript に記述した
/sbin/service httpd graceful を成功させたいのですが、失敗します。
エラーメッセージを見ると、権限問題の模様です。
logrotateは、root権限で実行されないのでしょうか。
###発生している問題・エラーメッセージ
/tmp/graceful.out
Gracefully restarting httpd: (13)Permission denied: AH00058: Error retrieving pid file /tmp/httpd.pid AH00059: Remove it before continuing if it is corrupted.
###該当のソースコード
/etc/logrotate.d/httpd
/var/log/httpd/access_log /var/log/httpd/error_log { daily missingok rotate 90 delaycompress ifempty sharedscripts postrotate /sbin/service httpd graceful > /tmp/graceful.out 2>&1 endscript }
###試したこと
手動でrootユーザにて service httpd graceful を実行すると、成功します。
(sudo においても、パスワード入力が必要ですが、成功します)
###補足情報(言語/FW/ツール等のバージョンなど)
CentOS release 6.7 (Final)
Server version: Apache/2.4.23 (Unix)
$ pwd /tmp $ ll -rw-r--r--. 1 root root 0 11月 10 10:10 2016 httpd.lock -rw-r--r--. 1 root root 5 11月 10 10:10 2016 httpd.pid
前回「Apacheログがローテート後に更新されない」の件名で質問させていただきました。
###補足情報2
SELinuxは有効です(Enforcing)。
/var/log/audit/audit.log に関しては、例えば以下の行がありました。
type=SYSCALL msg=audit(1477494121.309:502): arch=c000003e syscall=62 success=yes exit=0 a0=ddd a1=0 a2=0 a3=7fff7317ea50 items=0 ppid=9378 pid=9386 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=20 comm="httpd" exe="/opt/httpd-2.4.23/bin/httpd" subj=system_u:system_r:logrotate_t:s0-s0:c0.c1023 key=(null)
Apache httpd-2.4.23 のインストール方法は、tarball から make install です。
./configure \ --prefix=/opt/httpd-2.4.23 \ --with-mpm=prefork \ --enable-mods-shared=all
/etc/init.d/httpd に関しては、
デフォルトの状態から、ファイルのパスを変更したのみです。
回答3件
あなたの回答
tips
プレビュー