diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index cf990e1d..934df787 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -1506,7 +1506,15 @@ class IpmiHandler(object): if self.element[-1] == '': self.element = self.element[:-1] if self.op in ('create', 'update'): - self.ipmicmd.apply_license(self.inputdata.nodefile(self.node)) + filename = self.inputdata.nodefile(self.node) + if not os.access(filename, os.R_OK): + errstr = ('{0} is not readable by confluent on {1} ' + '(ensure confluent user or group can access file ' + 'and parent directories)').format( + filename, socket.gethostname()) + self.output.put(msg.ConfluentNodeError(self.node, errstr)) + return + self.ipmicmd.apply_license(filename) if len(self.element) == 3: self.output.put(msg.ChildCollection('all')) i = 1 diff --git a/confluent_server/confluent/plugins/hardwaremanagement/redfish.py b/confluent_server/confluent/plugins/hardwaremanagement/redfish.py index 0f4cc46d..7111f3b9 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/redfish.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/redfish.py @@ -1354,6 +1354,14 @@ class IpmiHandler(object): if self.element[-1] == '': self.element = self.element[:-1] if self.op in ('create', 'update'): + filename = self.inputdata.nodefile(self.node) + if not os.access(filename, os.R_OK): + errstr = ('{0} is not readable by confluent on {1} ' + '(ensure confluent user or group can access file ' + 'and parent directories)'.format( + filename, socket.gethostname()) + self.output.put(msg.ConfluentNodeError(self.node, errstr)) + return self.ipmicmd.apply_license(self.inputdata.nodefile(self.node)) if len(self.element) == 3: self.output.put(msg.ChildCollection('all')) diff --git a/confluent_server/systemd/confluent.service b/confluent_server/systemd/confluent.service index 3ecf1e11..9f6e51c5 100644 --- a/confluent_server/systemd/confluent.service +++ b/confluent_server/systemd/confluent.service @@ -14,7 +14,7 @@ ConfigurationDirectory=confluent ExecStart=/opt/confluent/bin/confluent ExecStop=/opt/confluent/bin/confetty shutdown / Restart=on-failure -AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_SETUID CAP_CHOWN +AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_SETUID CAP_SETGID CAP_DAC_READ_SEARCH CAP_CHOWN User=confluent Group=confluent DevicePolicy=closed