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.
Asked
Active
Viewed 5,688 times
3 Answers
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
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.