diff options
author | Vincent Brillault <gentoo@lerya.net> | 2013-08-03 09:08:42 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2013-08-03 09:19:39 -0400 |
commit | a0eaa253b2950ecd1a88db3b3a3b298b03498e4c (patch) | |
tree | 3bc3106e7075e1f9286236596eee4d9d32f35645 | |
parent | Webappconfig/config.py: Adds check for package name and version (diff) | |
download | webapp-config-a0eaa253b2950ecd1a88db3b3a3b298b03498e4c.tar.gz webapp-config-a0eaa253b2950ecd1a88db3b3a3b298b03498e4c.tar.bz2 webapp-config-a0eaa253b2950ecd1a88db3b3a3b298b03498e4c.zip |
WebappConfig/{config.py,server.py}: set server uid/gid in the config
X-Gentoo-Bug: 432908
X-Gentoo-Bug-URL: https://bugs.gentoo.org/432908
-rw-r--r-- | WebappConfig/config.py | 36 | ||||
-rw-r--r-- | WebappConfig/server.py | 20 | ||||
-rw-r--r-- | doc/webapp-config.5.xml | 20 |
3 files changed, 61 insertions, 15 deletions
diff --git a/WebappConfig/config.py b/WebappConfig/config.py index 04fb6f2..bf55d1e 100644 --- a/WebappConfig/config.py +++ b/WebappConfig/config.py @@ -708,6 +708,18 @@ class Config: ' variable "' + user + "'") return result + def maybe_get_user(self, user): + result = None + input_user = self.maybe_get(user) + if not input_user: + return result + try: + result = Perm.get_user(input_user) + except KeyError: + OUT.die('You specified an invalid user value for the' + ' variable "' + user + "'") + return result + def get_group(self, group): result = None try: @@ -717,6 +729,18 @@ class Config: ' variable "' + group + "'") return result + def maybe_get_group(self, group): + result = None + input_group = self.maybe_get(group) + if not input_group: + return result + try: + result = Perm.get_group(input_group) + except KeyError: + OUT.die('You specified an invalid group value for the' + ' variable "' + group + "'") + return result + def installdir(self): return self.maybe_get('g_installdir') @@ -1514,27 +1538,27 @@ class Config: self.get_group('vhost_default_gid'), self.get_perm('vhost_perms_virtualowned_file')], # These will be re-set by the servers - 'server-owned' : [None, - None, + 'server-owned' : [self.maybe_get_user('vhost_server_uid'), + self.maybe_get_group('vhost_server_gid'), self.get_perm('vhost_perms_serverowned_file')], 'config-owned' : [self.get_user('vhost_config_uid'), self.get_group('vhost_config_gid'), self.get_perm('vhost_perms_configowned_file')], 'config-server-owned' : [self.get_user('vhost_config_uid'), - None, + self.maybe_get_group('vhost_server_gid'), self.get_perm('vhost_perms_serverowned_file')],}, 'dir' : {'default-owned' :[self.get_user('vhost_default_uid'), self.get_group('vhost_default_gid'), self.get_perm('vhost_perms_defaultowned_dir')], # These will be re-set by the servers - 'server-owned' : [None, - None, + 'server-owned' : [self.maybe_get_user('vhost_server_uid'), + self.maybe_get_group('vhost_server_gid'), self.get_perm('vhost_perms_serverowned_dir')], 'config-owned' : [self.get_user('vhost_config_uid'), self.get_group('vhost_config_gid'), self.get_perm('vhost_perms_configowned_dir')], 'config-server-owned' : [self.get_user('vhost_config_uid'), - None, + self.maybe_get_group('vhost_server_gid'), self.get_perm('vhost_perms_serverowned_dir')], 'install-owned': [self.get_user('vhost_default_uid'), self.get_group('vhost_default_gid'), diff --git a/WebappConfig/server.py b/WebappConfig/server.py index f67ecdb..a2b8e3f 100644 --- a/WebappConfig/server.py +++ b/WebappConfig/server.py @@ -67,15 +67,17 @@ class Basic: self.__vhostroot = directories['vhostroot'] # + server owned - permissions['file']['server-owned'][0] = self.vhost_server_uid - permissions['file']['server-owned'][1] = self.vhost_server_gid - permissions['dir']['server-owned'][0] = self.vhost_server_uid - permissions['dir']['server-owned'][1] = self.vhost_server_gid - # and config owned directories have server gid - permissions['dir']['config-owned'][1] = self.vhost_server_gid - # allows server and config owned - permissions['file']['config-server-owned'][1] = self.vhost_server_gid - permissions['dir']['config-server-owned'][1] = self.vhost_server_gid + if permissions['file']['server-owned'][0] == 0: + permissions['file']['server-owned'][0] = self.vhost_server_uid + permissions['dir']['server-owned'][0] = self.vhost_server_uid + if permissions['file']['server-owned'][1] == 0: + permissions['file']['server-owned'][1] = self.vhost_server_gid + permissions['dir']['server-owned'][1] = self.vhost_server_gid + # and config owned directories have server gid + permissions['dir']['config-owned'][1] = self.vhost_server_gid + # allows server and config owned + permissions['file']['config-server-owned'][1] = self.vhost_server_gid + permissions['dir']['config-server-owned'][1] = self.vhost_server_gid self.__perm = permissions self.__handler = handler diff --git a/doc/webapp-config.5.xml b/doc/webapp-config.5.xml index 49de978..f7fdab4 100644 --- a/doc/webapp-config.5.xml +++ b/doc/webapp-config.5.xml @@ -118,6 +118,26 @@ </varlistentry> <varlistentry> + <term>vhost_server_uid</term> + <listitem> + <para>Overiding parameter for the server-dependant hardcoded uid which specifies the user to own all files and directories that are server-owned.</para> + <para>Warning: <command>webapp-config</command>'s <option>-s</option> switch does not overide this parameter.</para> + <para>By default, this is disabled.</para> + <para>This can be <emphasis>either</emphasis> the name of a user or their numerical user id.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>vhost_server_gid</term> + <listitem> + <para>Overiding parameter for the server-dependant hardcoded gid which specifies the group to own all files and directories that are server-owned.</para> + <para>Warning: <command>webapp-config</command>'s <option>-s</option> switch does not overide this parameter.</para> + <para>By default, this is disabled.</para> + <para>This can be <emphasis>either</emphasis> the name of a group or their numerical group id.</para> + </listitem> + </varlistentry> + + <varlistentry> <term>vhost_config_uid</term> <listitem> <para>Default value when <command>webapp-config</command>'s <option>-u</option> switch hasn't been used.</para> |