Visit Our UNIX and Linux User Community


List ALL users in a Unix Group (Primary and Secondary)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting List ALL users in a Unix Group (Primary and Secondary)
# 1  
Old 05-20-2009
List ALL users in a Unix Group (Primary and Secondary)

Is there a command or better combination of cmds that will give me the list of Unix users in a particular Unix group whether their primary group is that group in question (information stored in /etc/passwd) or they are in a secondary group (information stored in /etc/group).

So far all I got is a combination of the following:
groupName=XXXXX
groupId=$( getent group | egrep "^${groupName}:" | cut -d: -f3 )
getent passwd | egrep "^.*:.*:.*:${groupId}" | cut -f1 -d:
getent group | egrep "^${groupName}:" | cut -f4 -d:

(Yeah for all you NIS and/or LDAP guys, I did use the getent commands) Smilie
# 2  
Old 05-21-2009
hmm.
Some systems have a listgroup command - did you check yours for that command?
# 3  
Old 05-21-2009
Quote:
Originally Posted by ckmehta
Is there a command or better combination of cmds that will give me the list of Unix users in a particular Unix group whether their primary group is that group in question (information stored in /etc/passwd) or they are in a secondary group (information stored in /etc/group).

So far all I got is a combination of the following:
groupName=XXXXX
groupId=$( getent group | egrep "^${groupName}:" | cut -d: -f3 )
getent passwd | egrep "^.*:.*:.*:${groupId}" | cut -f1 -d:
getent group | egrep "^${groupName}:" | cut -f4 -d:

(Yeah for all you NIS and/or LDAP guys, I did use the getent commands) Smilie
if you have Python, an alternative
Code:
#!/usr/bin/env python
d={}
for line in open("/etc/group"):
    line=line.strip().split(":")
    users=line[3]
    if users:
        for u in users.split(","):
            d.setdefault(u,[])
            d[u].append(line[0])
for i,j in d.iteritems():
    print "%s is in groups: %s" %(i,j)

output
Code:
# ./test.py
daemon is in groups: ['bin']
user5 is in groups: ['dialout', 'video']
user2 is in groups: ['dialout', 'video']
user3 is in groups: ['dialout', 'video']
user1 is in groups: ['dialout', 'video']
nobody is in groups: ['nogroup']

# 4  
Old 05-21-2009
If you have the "logins" command:

Code:
logins -g <group name>

# 5  
Old 05-21-2009
Code:
groupName="$1"

# Save some processing, no need to call getent so much.
#
groupEntry=$(getent group | grep "^${groupName}:")
if [ ! "$groupEntry" ]; then
        echo "Group $groupName does not exist." >&2
        exit 1
fi

# Note it IS possible that the same group is found in a local /etc/group
# as well as another source, you'll get two results.  We'll assume the
# first one wins.
#
groupId=$(echo "$groupEntry" | cut -d: -f3 | head -1)

# A username could be in a primary group and have that SAME primary
# group redundantly set as a secondary group.
#
passwdUser=$(getent passwd | cut -d: -f1,4 | grep ":${groupdId}$" | cut -d: -f1)
echo "${groupEntry},${passwdUser}" | cut -d: -f4 | tr ',' '\012' | sed '/^$/d' | sort -u

# 6  
Old 05-27-2009
Thanks everyone, the operating system is Solaris and the "logins -g <grp>" command works BEAUTIFULLY and provides some visibility on primary vs secondary groups, like the following:


logins -g unixGrpName
myadm 10000 myadm 10000
myserv 10200 myserv 10200
dbadm 10300 myadm 10000
Cuser1 47001 unixGrpName 47000 GECOS for CUser1
CUser2 47002 unixGrpName 47000 GECOS for CUser2
CUser3 47003 unixGrpName 47000 GECOS for CUser3


Kudos to Methyl!

Previous Thread | Next Thread
Test Your Knowledge in Computers #217
Difficulty: Medium
Network operating systems can be embedded in a router or hardware firewall that operates the functions in the physical layer (layer 1).
True or False?

10 More Discussions You Might Find Interesting

1. Solaris

DNS Primary and Secondary

hi there, i using salaris 10 as my DNS server. i have 2 dns server primary and secondary. if primary dns server i edit/update, the other secondary dns server must be sync too. How can i configure if dns server (primary) can sync the secondary? (1 Reply)
Discussion started by: tappetmus
1 Replies

2. AIX

How to find Primary & Secondary VIOS?

Hi, In a Dual VIOSs setup having 4 SEA adapters each, how to find which one is Primary and Secondary.? Regards, Siva (2 Replies)
Discussion started by: ksgnathan
2 Replies

3. Shell Programming and Scripting

Script to list primary group of users

Dear All I am facing a problem with my script. I have to found the primary group of users . So first I selected all the groups and users register from a specific user : ONE Then I am making a file with all groups attached to the user : ONE Then I am making a file with all... (8 Replies)
Discussion started by: Aswex
8 Replies

4. Solaris

su: No shell/No directory! if sys is added to a users secondary group

Hi, When I include a user to the secondary group "sys" GID=3 in Solaris 9 OS I'm not able to login. I get these error. The user home directory and the shell exists. Is this because of any security hardening. # su - agent No directory! # su agent su: No shell # grep taddm /etc/passwd... (14 Replies)
Discussion started by: agent001
14 Replies

5. Linux

Secondary linux dist WITHIN primary one

Hi New here so forgive my ignorance and inability to express myself in an informative manner ;) I have a Fedora distribution installed on my development computer. The system we build is meant to run on a slackware dist which is all fine and well. But due to our flow of deployment I would have... (2 Replies)
Discussion started by: inquam
2 Replies

6. UNIX for Dummies Questions & Answers

Synchronizing primary and secondary name servers

Hello All, Does some one know how to synchronize the primary name server with the secondary without knowing the domains on which synchronization failed. I have just done /usr/sbin/ndc reload Alternatively how do i find out the domains on which synchronization failed? (4 Replies)
Discussion started by: a2z1982
4 Replies

7. UNIX for Advanced & Expert Users

primary-secondary sync problem

hi guys, i am new to this DNS business and i'm having a problem. the setup is bind 9.2.3 is installed on a sun solaris 8 server and is the primary DNS. men and mice suite is installed on another sun solaris 8 and that is our secondary DNS server. problem is recently the secondary DNS stopped... (0 Replies)
Discussion started by: mbannout
0 Replies

8. UNIX for Advanced & Expert Users

Change a users primary group after login

When users login, they are directed to menu (aix script). The menu enables the user to choose an environment to work in. Each environment has a different group id. When a user chooses a menu option, I want to change his primary group to that specific environment's group id. Is this at all possible... (3 Replies)
Discussion started by: terrym
3 Replies

9. UNIX for Dummies Questions & Answers

Assigning existing users to a secondary group

Hi!!, I am on HP UX -11. I have created a new group and want to assign some the users to this group without changing their existing group ( The new group is the secondary group for them) Any ideas how to do it?? SAM doesnt seem to be working.. Any way of doing it from command line?? ... (1 Reply)
Discussion started by: jyotipg
1 Replies

10. UNIX for Dummies Questions & Answers

How to find All Primary and Secondary Group ID's for a user

Is there any command which can list me all the Group ID's (Primary, Secondary ) assocaited with a single user. Thanks Sanjay (2 Replies)
Discussion started by: sanjay92
2 Replies

Featured Tech Videos