--- file_not_specified_in_diff +++ file_not_specified_in_diff @@ -, +, @@ --- a/WebappConfig/config.py +++ b/WebappConfig/config.py @@ -694,6 +694,18 @@ ' 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: @@ -703,6 +715,18 @@ ' 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') @@ -1478,27 +1502,27 @@ 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'), --- a/WebappConfig/server.py +++ b/WebappConfig/server.py @@ -67,15 +67,17 @@ 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 --- a/doc/webapp-config.5.xml +++ b/doc/webapp-config.5.xml @@ -118,6 +118,26 @@ + vhost_server_uid + + Overiding parameter for the server-dependant hardcoded uid which specifies the user to own all files and directories that are server-owned. + Warning: webapp-config's switch does not overide this parameter. + By default, this is disabled. + This can be either the name of a user or their numerical user id. + + + + + vhost_server_gid + + Overiding parameter for the server-dependant hardcoded gid which specifies the group to own all files and directories that are server-owned. + Warning: webapp-config's switch does not overide this parameter. + By default, this is disabled. + This can be either the name of a group or their numerical group id. + + + + vhost_config_uid Default value when webapp-config's switch hasn't been used.