Red Hat Bugzilla – Bug 834413
RFE: cman without root-group privileges
Last modified: 2012-07-03 04:37:49 EDT
Request for Enhancement
MRG Messaging needs the ability for our clustered brokers to
get quorum changes in CPG order, but without the necessity for
our qpidd executable to run with root, or root-group privileges.
Many customers and potential customers of the MRG Messaging
system request our clustering feature, which we would like to
implement atop CMAN. We have already successfully implemented
experimental code using CMAN.
However, some of our customers are requiring a combination of
features that we believe we cannot currently satisfy with CMAN.
We need to provide:
1. An at-least-once delivery guarantee.
2. No need for our qpidd executable to be in the root group.
We can satisfy the at-least-once guarantee if our clustered
messaging brokers receive quorum-change messages in CPG order.
CMAN does that for us, but only at the cost of our processes
running with root-group privileges.
We can avoid the root-group privileges by using cmannotifyd, but
only at the cost of losing the CPG ordering guarantee. If we use
cmannotifyd, and if one of our brokers fails, there will be a window
of time during which our cluster may lose messages.
Our ideal solution would be to use the CMAN interface as we are
now in our experimental code, but without the need to run with
root or root-group privileges.
rgmanager in STABLE32 (upstream) does something like this in msg_socket.c using SO_PEERCRED from getsockopt. Then, each request is processed based on the permissions required.
rgmanager in this case simply differentiates read-only (less permission required - root gid) with read-write (more permission required - root uid).
However, the way it is set up, rgmanager mimics CMAN's permissions currently, I believe.
As originally discussed, this cannot and will not happen.