Как можно перечислить пользователей, принадлежащих к группе в OSX?

Я гуглил эту проблему безрезультатно. Я хочу перечислить только пользователей, принадлежащих к определенной группе, без посторонних данных в терминале osx, я думал, что утилита dscl будет способна сделать это, но до сих пор я был не в состоянии составить правильную команду, если действительно она способна на такое Акт.

3 ответа

Решение

Чтобы запросить локальную группу:

$ dscl . -read /groups/<groupname> | grep GroupMembership
dscacheutil -q group -a name staff

или же

dscacheutil -q group -a name admin 

и т.д... понял?

Используйте эту функцию оболочки, которая вызывает dsmemberutil checkmembership для каждого пользователя. Например: members everyone, (Источник: 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>

Другие методы, использующие dscl . -read а также dscacheutil неполны. Например:

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

не перечислять пользователей, в то время как функция оболочки делает.

Другие вопросы по тегам