Branch 'pykolab-0.4' - pykolab/logger.py

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Fri May 25 09:35:42 CEST 2012


 pykolab/logger.py |   26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

New commits:
commit ff846861b629c3ec697d04207ca681505970e3a6
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Fri May 25 08:29:13 2012 +0100

    Make sure our log file has the correct owner, group and read/write permissions

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)





More information about the commits mailing list