summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-14 11:47:14 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-14 11:57:06 -0500
commit41f8803559f4d2b9d2df005464c9ad199431f9a6 (patch)
tree5cccea1e3272f29b38eef5860b9025c79f58fe5a /src/lib/Bcfg2/Server
parent244b31c8a740ee7b1f021bfc03002f1ec572000e (diff)
downloadbcfg2-41f8803559f4d2b9d2df005464c9ad199431f9a6.tar.gz
bcfg2-41f8803559f4d2b9d2df005464c9ad199431f9a6.tar.bz2
bcfg2-41f8803559f4d2b9d2df005464c9ad199431f9a6.zip
set default umask for server, added option to change it
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()