Bad permissions in /var/log/nginx after logs are rotated
Juan Fco. Giordana
juangiordana at gmail.com
Tue Feb 23 13:13:16 MSK 2010
Hello,
I'm using daemontools to run nginx [1] and I'm experiencing the
following problem when I send the USR1 signal to rotate the logs with
another script [2]:
The problem is that after sending the USR1 signal to nginx, the logs
owner becomes 'nginx' instead of 'root', which is a potential security
breach.
~ # ls -la /var/log/nginx
total 627
drwxr-xr-x 2 root root 1088 Feb 23 04:29 .
drwxr-xr-x 15 root root 1088 Feb 22 01:27 ..
-rw-r--r-- 1 root root 0 Feb 23 04:25 access_log
-rw-r--r-- 1 root root 0 Feb 23 04:25 error_log
-rw-r--r-- 1 root root 19164 Feb 23 04:29 site1.com-access_log
-rw-r--r-- 1 root root 0 Feb 23 04:25 site1.com-error_log
-rw-r--r-- 1 root root 0 Feb 23 04:25 site1.com-ssl_access_log
-rw-r--r-- 1 root root 0 Feb 23 04:25 site1.com-ssl_error_log
~ # nginx-rotate.sh [2]
~ # ls -la /var/log/nginx
total 11
drwxr-xr-x 3 root root 1112 Feb 23 04:29 .
drwxr-xr-x 15 root root 1088 Feb 22 01:27 ..
drwxr-xr-x 2 root root 1088 Feb 23 04:29 old
-rw-r--r-- 1 nginx root 0 Feb 23 04:29 access_log
-rw-r--r-- 1 nginx root 0 Feb 23 04:29 error_log
-rw-r--r-- 1 nginx root 123 Feb 23 04:29 site1.com-access_log
-rw-r--r-- 1 nginx root 0 Feb 23 04:29 site1.com-error_log
-rw-r--r-- 1 nginx root 0 Feb 23 04:29 site1.com-ssl_access_log
-rw-r--r-- 1 nginx root 0 Feb 23 04:29 site1.com-ssl_error_log
If instead of this if I restart [3] the nginx process or send the HUP
signal [4] then the log files permissions remains correct (owned by root).
I'm not sure if this is a bug or a known issue but I appreciate any
clarifications.
Thanks.
[1] nginx daemontools startup script:
#! /bin/sh -
exec 2>&1
exec /srv/sbin/nginx -c /srv/etc/nginx/nginx.conf
[2] nginx log rotation script
#! /bin/sh -
cd /var/log/nginx
mkdir -p old
mv *_log old
kill -USR1 `cat /var/run/nginx.pid`
sudo -u user /home/user/awstats.sh
rm /var/log/nginx/old/*access_log
[3]
# Send TERM signal
svc -t /service/nginx
# OR stop and start
svc -d /service/nginx
# ... rotate logs
svc -u /service/nginx
[4]
svc -h /service/nginx
More information about the nginx
mailing list