Author |
Message
|
edub1 |
Posted: Fri Oct 31, 2008 8:32 am Post subject: mqm user |
|
|
Apprentice
Joined: 01 Apr 2008 Posts: 28
|
What additional access does the mqm user have over a user in the mqm? Or is mqm simply a user to help identify the MQ processes? More to the point, other than for security reasons, why would you bother with creating and/or adding another user to the mqm group, rather than just logging in as mqm? |
|
Back to top |
|
 |
PeterPotkay |
Posted: Fri Oct 31, 2008 9:32 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
We do not place any MQ Admin IDs in the mqm group. We do all our work as the mqm ID. But to satisfy SOX, we can't log on with the mqm ID. We log on with our own IDs, then su over to the mqm ID to do the work.
Not having our individual IDs in the mqm group prevents someone from starting the QM under their ID, or creating MQ objects under their ID, which would be a problem if their primary group is something other than mqm. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
edub1 |
Posted: Fri Oct 31, 2008 10:42 am Post subject: |
|
|
Apprentice
Joined: 01 Apr 2008 Posts: 28
|
OK that is what I had in mind to do as well. I was doing some fact finding and ran across this:
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.amqzag.doc/fa12740_.htm
What jummped out at me at first was
"a special user ID of mqm is also created, for use by the product only."
This is why I was wondering if there were any deeper reasons not to use mqm via su, or logging directly in to do normal admin work. In another portion, the way I understood it was IBM recomends doing the work you can with a userID that is in the mqm group, rather than the mqm user. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Fri Oct 31, 2008 2:26 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
I see why you think that, the way its written. We have been using mqm for years with no problems. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
atheek |
Posted: Sat Nov 01, 2008 2:31 am Post subject: |
|
|
 Partisan
Joined: 01 Jun 2006 Posts: 327 Location: Sydney
|
PeterPotkay wrote: |
But to satisfy SOX.. |
Hi Peter, what is SOX ?  |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Nov 01, 2008 5:08 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
atheek wrote: |
PeterPotkay wrote: |
But to satisfy SOX.. |
Hi Peter, what is SOX ?  |
Sarbannes OXley -- laws. It's about regulations... and mandatory for the vast majority of US companies. _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Sat Nov 01, 2008 5:56 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
It's really interesting to me how vastly differently people treat the 'mqm' user on Unix and the 'MUSR_MQADMIN' user on Windows.
Almost nobody ever changes the password for MUSR_MQADMIN, and always uses a user that's in the mqm group (or merely in Administrators) instead.
Almost everybody uses su - to log in as 'mqm' and doesn't use a user in the mqm group.
According to 'the lab', nobody should ever log in as 'mqm' in the same way that nobody should ever log in as MUSR_MQADMIN. it's there as a service user, and that's it. |
|
Back to top |
|
 |
SAFraser |
Posted: Mon Nov 03, 2008 12:27 pm Post subject: |
|
|
 Shaman
Joined: 22 Oct 2003 Posts: 742 Location: Austin, Texas, USA
|
But there's a tricky little thing to remember, isn't there?
An MQ object created in unix will be created with full permissions to the primary group of the user ID who issued the 'define' command.
For example, Joe's primary group is 'mqbrkers' and he is additionally a member of the 'mqm' group. When Joe creates a new queue, the mqbrkrs group will have full permissions to the object.
This is a an important point, I think, for teams where a WMB developer or a WAS admin does double duty as a backup to the MQ admin, as the individual's user ID may not have 'mqm' as the primary group assignment.
At our site, my individual user ID has 'mqm' as its primary group. I do nearly everything as myself, except for creating objects and starting/stopping queue managers. |
|
Back to top |
|
 |
mvic |
Posted: Mon Nov 03, 2008 5:55 pm Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
SAFraser wrote: |
For example, Joe's primary group is 'mqbrkers' and he is additionally a member of the 'mqm' group. When Joe creates a new queue, the mqbrkrs group will have full permissions to the object. |
Is this really true? |
|
Back to top |
|
 |
SAFraser |
Posted: Mon Nov 03, 2008 8:26 pm Post subject: |
|
|
 Shaman
Joined: 22 Oct 2003 Posts: 742 Location: Austin, Texas, USA
|
Is this really true, you ask? I assume your question is one of incredulity as opposed to questioning my sanity?!!
As user 'wmqi', whose primary group is 'mqbrkrs':
wmqi:/home/wmqi>id -a wmqi
uid=9004(wmqi) gid=110(mqbrkrs) groups=8014(mqm),101(dba),8004(oinstall),110(mqbrkrs)
wmqi:/home/wmqi>runmqsc TEST
5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED.
Starting MQSC for queue manager TEST.
define ql('TEST.QUEUE')
2 : define ql('TEST.QUEUE')
AMQ8006: WebSphere MQ queue created.
end
wmqi:/home/wmqi>dspmqaut -m TEST -t q -n TEST.QUEUE -g mqbrkrs
Entity mqbrkrs has the following authorizations for object TEST.QUEUE:
get
browse
put
inq
set
dlt
chg
dsp
passid
passall
setid
setall
clr
I know of this because I was bitten by it once...... |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Nov 03, 2008 8:30 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Bad exemple Sherry. As far as I know mqbrks is also part of the mqm group... so it should have all rights  _________________ MQ & Broker admin |
|
Back to top |
|
 |
SAFraser |
Posted: Mon Nov 03, 2008 8:53 pm Post subject: |
|
|
 Shaman
Joined: 22 Oct 2003 Posts: 742 Location: Austin, Texas, USA
|
1) My name's not Sherry.
2) 'mqbrkrs' is a unix group. 'mqbrkrs' cannot be part of some other group, such as 'mqm'.
Here I've created a queue with my own ID. My primary group is 'mqm'. One of my secondary groups is 'mqbrkrs', which you'll see has no rights at all to the queue.
frasesh:/home/frasesh>id -a frasesh
uid=5428(frasesh) gid=8014(mqm) groups=80(webservd),8022(ccusers),110(mqbrkrs)
frasesh:/home/frasesh>runmqsc TEST
5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED.
Starting MQSC for queue manager TEST.
define ql('TEST.QUEUE')
1 : define ql('TEST.QUEUE')
AMQ8006: WebSphere MQ queue created.
end
2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
frasesh:/home/frasesh>dspmqaut -m TEST -t q -n TEST.QUEUE -g mqm
Entity mqm has the following authorizations for object TEST.QUEUE:
get
browse
put
inq
set
crt
dlt
chg
dsp
passid
passall
setid
setall
clr
frasesh:/home/frasesh>dspmqaut -m TEST -t q -n TEST.QUEUE -g mqbrkrs
Entity mqbrkrs has the following authorizations for object TEST.QUEUE:
frasesh:/home/frasesh>
I stand by my original statement. All objects in unix will, by default, have all rights granted to the 'mqm' group. But in addition, all rights will also be granted to the primary group of the user who created the object.
Now do try and remember my actual name. My ego's suffered a terrific blow. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Nov 04, 2008 4:11 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
SAFraser wrote: |
1) My name's not Sherry.
2) 'mqbrkrs' is a unix group. 'mqbrkrs' cannot be part of some other group, such as 'mqm'.
Here I've created a queue with my own ID. My primary group is 'mqm'. One of my secondary groups is 'mqbrkrs', which you'll see has no rights at all to the queue.
frasesh:/home/frasesh>id -a frasesh
uid=5428(frasesh) gid=8014(mqm) groups=80(webservd),8022(ccusers),110(mqbrkrs)
frasesh:/home/frasesh>runmqsc TEST
5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED.
Starting MQSC for queue manager TEST.
define ql('TEST.QUEUE')
1 : define ql('TEST.QUEUE')
AMQ8006: WebSphere MQ queue created.
end
2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
frasesh:/home/frasesh>dspmqaut -m TEST -t q -n TEST.QUEUE -g mqm
Entity mqm has the following authorizations for object TEST.QUEUE:
get
browse
put
inq
set
crt
dlt
chg
dsp
passid
passall
setid
setall
clr
frasesh:/home/frasesh>dspmqaut -m TEST -t q -n TEST.QUEUE -g mqbrkrs
Entity mqbrkrs has the following authorizations for object TEST.QUEUE:
frasesh:/home/frasesh>
I stand by my original statement. All objects in unix will, by default, have all rights granted to the 'mqm' group. But in addition, all rights will also be granted to the primary group of the user who created the object.
Now do try and remember my actual name. My ego's suffered a terrific blow. |
Sorry Shirley, vacation has messed up my mind.
You mean you have no mqbrkrs user id = group id that is member of both mqbrkrs and mqm?
In my experience most members of mqbrkrs have also a membership in mqm. As such the broker has full control over it's qmgr...
The question is then where does the primary group for the user lie and what authorizations do other users get when trying to access and post to queues you created under that id.
This is why the definition work is mostly done under the mqm service id and done by the MQ admin and not the developers. That too is the reason why you do not let the broker start the qmgr but have it started under the mqm service id...
This is also why membership in the mqm group should not be allocated lightly. Governance will help control this.
Setting permissions should never happen at a userid level but always at the group level even in Windows... and should be done by the mq admin or require mq admin involvement... _________________ MQ & Broker admin |
|
Back to top |
|
 |
SAFraser |
Posted: Wed Nov 05, 2008 11:43 am Post subject: |
|
|
 Shaman
Joined: 22 Oct 2003 Posts: 742 Location: Austin, Texas, USA
|
You have recovered nicely from vacation, and my ego is restored to full strength.
We are in agreement as to the use of the 'mqm' service ID. But I was trying to make an additional point that I need to clarify.
mqjeff stated that "According to 'the lab', nobody should ever log in as 'mqm' in the same way that nobody should ever log in as MUSR_MQADMIN. it's there as a service user, and that's it." I agree with you, FJ, that the service user should always be used for object definition. The reason I say this is that the primary group of the user who creates objects is automatically granted full access to the object.
I may have caused confusion by choosing a user in the 'mqbrkrs' group for my previous example, so here is an example of a WAS admin whose primary group is 'was' but who has secondard membership in the 'mqm' group.
$ who
johndoe pts/1 Nov 5 13:03 (10.10.1.1)
$ id -a johndoe
uid=914(johndoe) gid=828(was) groups=802(batch),80(webservd),804(mqm),828(was)
$ runmqsc TEST
5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED.
Starting MQSC for queue manager TEST.
define ql(TEST.QUEUE)
1 : define ql(TEST.QUEUE)
AMQ8006: WebSphere MQ queue created.
end
2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
$ dspmqaut -m TEST -t q -n TEST.QUEUE -g was
Entity was has the following authorizations for object TEST.QUEUE:
get
browse
put
inq
set
dlt
chg
dsp
passid
passall
setid
setall
clr
This is just an additional point that supports the use of the 'mqm' service ID for object definition. Using individual IDs may give unwanted results, depending on the primary group of the user.
Hope I've clarified a bit, and as always, look forward to further thoughts from the forum.
Last edited by SAFraser on Wed Nov 05, 2008 12:46 pm; edited 1 time in total |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Nov 05, 2008 12:05 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Nice clarification.
Agreed in full.
Always creating the objects under the service Id also makes the admin load lighter.
You no longer have to go extracting the permissions using amqoamd -s or dmpmqaut or saveqmgr to verify that no group, that is not supposed to, got access, because of who created the object..., and you'd have to do that on an object by object basis, even though they might all be in a wildcard authorization...
Just trying to work smarter and not harder...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|