On Tue, Sep 23, 2008 at 7:37 PM, Ian Blackwell wrote:
Bob Beers wrote:
grep <group_name>: /etc/group | cut -d: -f4
will give a comma separated list, provided <group_name> is a valid group name.
There is one problem with this approach, which is the assumption that
all users' primary group is the same as their login id - which I agree
is typically the RHEL way, but it doesn't have to be the case. If
however you have users with their primary group set to something other
than the login id - e.g. "admin" or "marketing" - then you need to look
in the /etc/passwd file as well because these users don't appear in the
comma separated list outlined above. To check the /etc/passwd file, you
have to determine the group id value, and then scan the /etc/passwd file
looking for that value in column 4. This will give you a list of users
whose primary group is the group value you're interested in.
You have a valid point, but the OP's question was:
"I am looking for a (simple) shell command to run from a bash script
that will allow me to list user accounts that belong to a particular
On Tue, Sep 23, 2008 at 6:43 PM, Barry Brimer wrote:
The egrep is using a leading anchor (^) to make sure the grep matches the
beginning of the line. If not, and the group pattern matched as one of the
users it would print those lines too .. which is probably undesirable.
My instinct is that by specifying the groupname as an argument as in:
'getent group groupname',
( rather than asking for all groups with 'getent group', and then
that the result would not match for users in the groups list.
But I may be wrong. I have not looked at the source code.
But I tested on my system and I did not see the behavior you
warn of. If I am correct about the getent program, then there
is also the added benefit of avoiding the pipe.