summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Server')
-rw-r--r--src/lib/Bcfg2/Server/BuiltinCore.py18
-rw-r--r--src/lib/Bcfg2/Server/CherryPyCore.py6
-rw-r--r--src/lib/Bcfg2/Server/Core.py2
3 files changed, 14 insertions, 12 deletions
diff --git a/src/lib/Bcfg2/Server/BuiltinCore.py b/src/lib/Bcfg2/Server/BuiltinCore.py
index 69fb8d0cb..63149c15e 100644
--- a/src/lib/Bcfg2/Server/BuiltinCore.py
+++ b/src/lib/Bcfg2/Server/BuiltinCore.py
@@ -28,17 +28,15 @@ class Core(BaseCore):
#: this server core
self.server = None
+ daemon_args = dict(uid=self.setup['daemon_uid'],
+ gid=self.setup['daemon_gid'],
+ umask=int(self.setup['umask'], 8))
if self.setup['daemon']:
- #: The :class:`daemon.DaemonContext` used to drop
- #: privileges, write the PID file (with :class:`PidFile`),
- #: and daemonize this core.
- self.context = \
- daemon.DaemonContext(uid=self.setup['daemon_uid'],
- gid=self.setup['daemon_gid'],
- pidfile=PIDLockFile(self.setup['daemon']))
- else:
- self.context = daemon.DaemonContext(uid=self.setup['daemon_uid'],
- gid=self.setup['daemon_gid'])
+ daemon_args['pidfile'] = PIDLockFile(self.setup['daemon'])
+ #: The :class:`daemon.DaemonContext` used to drop
+ #: privileges, write the PID file (with :class:`PidFile`),
+ #: and daemonize this core.
+ self.context = daemon.DaemonContext(**daemon_args)
__init__.__doc__ = BaseCore.__init__.__doc__.split('.. -----')[0]
def _dispatch(self, method, args, dispatch_dict):
diff --git a/src/lib/Bcfg2/Server/CherryPyCore.py b/src/lib/Bcfg2/Server/CherryPyCore.py
index 4ddcd7bdf..d097fd08f 100644
--- a/src/lib/Bcfg2/Server/CherryPyCore.py
+++ b/src/lib/Bcfg2/Server/CherryPyCore.py
@@ -107,8 +107,10 @@ class Core(BaseCore):
:class:`cherrypy.process.plugins.DropPrivileges`, daemonize
with :class:`cherrypy.process.plugins.Daemonizer`, and write a
PID file with :class:`cherrypy.process.plugins.PIDFile`. """
- DropPrivileges(cherrypy.engine, uid=self.setup['daemon_uid'],
- gid=self.setup['daemon_gid']).subscribe()
+ DropPrivileges(cherrypy.engine,
+ uid=self.setup['daemon_uid'],
+ gid=self.setup['daemon_gid'],
+ umask=int(self.setup['umask'], 8)).subscribe()
Daemonizer(cherrypy.engine).subscribe()
PIDFile(cherrypy.engine, self.setup['daemon']).subscribe()
return True
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index cd2aa949f..6d0ad2bb9 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -665,6 +665,8 @@ class BaseCore(object):
os.chmod(piddir, 420) # 0644
if not self._daemonize():
return False
+ else:
+ os.umask(int(self.setup['umask'], 8))
if not self._run():
self.shutdown()