[CalendarServer-changes] [4279] CalendarServer/trunk/calendarserver/tools

source_changes at macosforge.org source_changes at macosforge.org
Fri May 15 15:54:53 PDT 2009


Revision: 4279
          http://trac.macosforge.org/projects/calendarserver/changeset/4279
Author:   sagen at apple.com
Date:     2009-05-15 15:54:52 -0700 (Fri, 15 May 2009)
Log Message:
-----------
calendarserver_manage_principals now sheds privileges

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/tools/export.py
    CalendarServer/trunk/calendarserver/tools/migrate.py
    CalendarServer/trunk/calendarserver/tools/principals.py
    CalendarServer/trunk/calendarserver/tools/util.py
    CalendarServer/trunk/calendarserver/tools/warmup.py

Modified: CalendarServer/trunk/calendarserver/tools/export.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/export.py	2009-05-15 21:26:56 UTC (rev 4278)
+++ CalendarServer/trunk/calendarserver/tools/export.py	2009-05-15 22:54:52 UTC (rev 4279)
@@ -44,7 +44,7 @@
 from twistedcaldav.directory.directory import DirectoryService
 
 from calendarserver.tools.util import UsageError
-from calendarserver.tools.util import loadConfig, getDirectory, dummyDirectoryRecord
+from calendarserver.tools.util import loadConfig, getDirectory, dummyDirectoryRecord, autoDisableMemcached
 
 def usage(e=None):
     if e:
@@ -147,6 +147,8 @@
     if records:
         try:
             config = loadConfig(configFileName)
+            config.directory = getDirectory()
+            autoDisableMemcached(config)
         except ConfigurationError, e:
             sys.stdout.write("%s\n" % (e,))
             sys.exit(1)

Modified: CalendarServer/trunk/calendarserver/tools/migrate.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/migrate.py	2009-05-15 21:26:56 UTC (rev 4278)
+++ CalendarServer/trunk/calendarserver/tools/migrate.py	2009-05-15 22:54:52 UTC (rev 4279)
@@ -32,7 +32,7 @@
 from twistedcaldav.config import ConfigurationError
 from twistedcaldav.upgrade import upgradeData
 
-from calendarserver.tools.util import loadConfig
+from calendarserver.tools.util import loadConfig, getDirectory
 
 def usage(e=None):
     if e:
@@ -79,6 +79,7 @@
 
     try:
         config = loadConfig(configFileName)
+        config.directory = getDirectory()
     except ConfigurationError, e:
         sys.stdout.write("%s\n" % (e,))
         sys.exit(1)

Modified: CalendarServer/trunk/calendarserver/tools/principals.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/principals.py	2009-05-15 21:26:56 UTC (rev 4278)
+++ CalendarServer/trunk/calendarserver/tools/principals.py	2009-05-15 22:54:52 UTC (rev 4279)
@@ -22,9 +22,13 @@
 import operator
 from getopt import getopt, GetoptError
 from uuid import UUID
+from pwd import getpwnam
+from grp import getgrnam
 
+
 from twisted.python import log
 from twisted.python.reflect import namedClass
+from twisted.python.util import switchUID
 from twisted.internet import reactor
 from twisted.internet.defer import Deferred
 from twisted.internet.address import IPv4Address
@@ -84,6 +88,16 @@
         sys.exit(0)
 
 def main():
+
+    #
+    # Send logging output to stdout
+    #
+    logFileName = "/dev/stdout"
+    observer = log.FileLogObserver(open(logFileName, "a"))
+    log.addObserver(observer.emit)
+
+
+
     try:
         (optargs, args) = getopt(
             sys.argv[1:], "hf:P:", [
@@ -178,6 +192,15 @@
     #
     try:
         loadConfig(configFileName)
+        setLogLevelForNamespace(None, "warn")
+
+        # Shed privileges
+        if config.UserName and config.GroupName:
+            uid = getpwnam(config.UserName).pw_uid
+            gid = getgrnam(config.GroupName).gr_gid
+            switchUID(uid, uid, gid)
+
+        config.directory = getDirectory()
         autoDisableMemcached(config)
     except ConfigurationError, e:
         abort(e)
@@ -193,14 +216,6 @@
             abort(e)
 
     #
-    # Send logging output to stdout
-    #
-    setLogLevelForNamespace(None, "warn")
-    logFileName = "/dev/stdout"
-    observer = log.FileLogObserver(open(logFileName, "a"))
-    log.addObserver(observer.emit)
-
-    #
     # Start the reactor
     #
     reactor.callLater(0, run, args, actions)

Modified: CalendarServer/trunk/calendarserver/tools/util.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/util.py	2009-05-15 21:26:56 UTC (rev 4278)
+++ CalendarServer/trunk/calendarserver/tools/util.py	2009-05-15 22:54:52 UTC (rev 4279)
@@ -39,7 +39,6 @@
         raise ConfigurationError("No config file: %s" % (configFileName,))
 
     config.loadConfig(configFileName)
-    config.directory = getDirectory()
 
     return config
 

Modified: CalendarServer/trunk/calendarserver/tools/warmup.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/warmup.py	2009-05-15 21:26:56 UTC (rev 4278)
+++ CalendarServer/trunk/calendarserver/tools/warmup.py	2009-05-15 22:54:52 UTC (rev 4279)
@@ -129,6 +129,7 @@
     if records or allRecords:
         try:
             config = loadConfig(configFileName)
+            config.directory = getDirectory()
         except ConfigurationError, e:
             sys.stdout.write("%s\n" % (e,))
             sys.exit(1)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090515/4688f2b4/attachment.html>


More information about the calendarserver-changes mailing list