1

I have been googling this problem to no avail. I want to list just the users belonging to a particular group without extraneous data in osx terminal, I thought the dscl utility would be capable of doing this but so far I have been unable to craft out the right command if indeed it is capable of such an act.

ekad
  • 14,436
  • 26
  • 44
  • 46
Dark Star1
  • 6,986
  • 16
  • 73
  • 121

3 Answers3

6

To query a local group:

$ dscl . -read /groups/<groupname> | grep GroupMembership
Paul
  • 376
  • 1
  • 3
  • Had to replace with an actual group name..duh! Then it worked `code` dscl . -read /groups/staff | grep GroupMembership – kwahn Jun 27 '13 at 14:51
  • You don't really need the "grep GroupMembership" part, you can list the command as: $ dscl . -read /groups/ GroupMembership – ColtonCat Mar 05 '14 at 20:50
4
dscacheutil -q group -a name staff

or

dscacheutil -q group -a name admin 

etc... get it?

andrewsi
  • 10,807
  • 132
  • 35
  • 51
duperuser
  • 41
  • 1
0

Use this shell function, which calls dsmemberutil checkmembership for every user. For example: members everyone. (Source: https://superuser.com/questions/279891/list-all-members-of-a-group-mac-os-x )

members () { dscl . -list /Users | while read user; do printf "$user "; dsmemberutil checkmembership -U "$user" -G "$*"; done | grep "is a member" | cut -d " " -f 1; }; 

members <group>

Other methods using dscl . -read and dscacheutil are incomplete. For example:

dscl . -read /groups/everyone | grep GroupMembership
dscacheutil -q group -a name everyone

do not list any users, whereas the shell function does.

Community
  • 1
  • 1
wisbucky
  • 33,218
  • 10
  • 150
  • 101