Cron update after upgrading to Ubuntu 14.04.

After a recent upgrade from Ubuntu 12.04 to Ubuntu 14.04 I started to receive the email below. This email was being sent out by the cron system on a daily basis because the developers of Ubuntu are trying to make Ubuntu even more secure.

eMail

From:  root@myserver.com
Subject:   Cron <root@myserver> test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
To:    root@myserver.com

/etc/cron.daily/logrotate:

error: skipping “/var/log/apache2/access.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/apache2/error.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/apache2/other_vhosts_access.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/apache2/suexec.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/apport.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/aptitude” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/dpkg.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/alternatives.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/fail2ban.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/mysql.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/ppp-connect-errors” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/razor-agent.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/rkhunter.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/syslog” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/mail.info” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/mail.warn” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/mail.err” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/mail.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/daemon.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/kern.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/auth.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/user.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/lpr.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/cron.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/debug” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/messages” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/ufw.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/wtmp” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/btmp” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/named/security.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

error: skipping “/var/log/procmail.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

run-parts: /etc/cron.daily/logrotate exited with return code 1

 

The important part is of all of those statements in the email is

 

Set 'su'
Set “su” directive in config file to tell logrotate which user/group should be used for rotation.

 

which means the “su” directive in the logrotate config file located at ‘/etc/logrotate.conf’ has not been set. As a consequence none of the logs mentioned in the email could be rotated. Log files need to be rotated at least once a day or they will bloat and eventually fill the entire hard drive.

The fix is really very simple. Open the file ‘/etc/logrotate.conf’ with your favourite text editor and add a few blank lines in the conf file just after

 

# see “man logrotate” for details
# rotate log files weekly
weekly

 

then copy the three lines of code below.

 

Add this code
# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

 

and paste them in between the blank lines you just created. Don’t forget to save the file. Now the top of your ‘/etc/logrotate.conf’ should look like.

 

‘/etc/logrotate.conf’

# see “man logrotate” for details
# rotate log files weekly
weekly

# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

# keep 4 weeks worth of backlogs
rotate 4

 

That is it the next time your cron system runs all of those logs will be rotated automatically for you.

About 

Allan has a life time background in sales and more than thirty years experience in programming, and server configuration. Which makes Allan extremely well equipped to understand your needs for any application or web site. Contact Allan to develop an application or web site for your business or for you personally.

Leave a Reply