--- 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_uidDefault value when webapp-config's switch hasn't been used.