diff options
author | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2012-05-25 08:29:13 +0100 |
---|---|---|
committer | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2012-05-25 08:29:13 +0100 |
commit | 3c189aa376e98790ab006d16f5b61b82059ef3ad (patch) | |
tree | 3626ee0e29dc69333c8aa2bd0d04f096935ba296 | |
parent | c116e801d7611d38f5c70f0d148de1616be5643e (diff) | |
download | pykolab-3c189aa376e98790ab006d16f5b61b82059ef3ad.tar.gz |
Make sure our log file has the correct owner, group and read/write permissions
-rw-r--r-- | pykolab/logger.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/pykolab/logger.py b/pykolab/logger.py index 2101866..94a84fb 100644 --- a/pykolab/logger.py +++ b/pykolab/logger.py @@ -17,9 +17,11 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # +import grp import logging import logging.handlers import os +import pwd import sys import time @@ -82,6 +84,30 @@ class Logger(logging.Logger): else: self.logfile = '/var/log/kolab/pykolab.log' + # Make sure the log file exists + fhandle = file(self.logfile, 'a') + try: + os.utime(self.logfile, None) + finally: + fhandle.close() + + # Make sure (read: attempt to change) the permissions + (ruid, euid, suid) = os.getresuid() + (rgid, egid, sgid) = os.getresgid() + if ruid == 0 or rgid == 0: + try: + os.chown( + self.logfile, + pwd.getpwnam('kolab')[2], + grp.getgrnam('kolab-n')[2] + ) + os.chmod(self.logfile, 0660) + except: + print >> sys.stderr, \ + _("Could not change the ownership of log file %s") % ( + self.logfile + ) + try: filelog_handler = logging.FileHandler(filename=self.logfile) filelog_handler.setFormatter(plaintextformatter) |