Как можно перечислить пользователей, принадлежащих к группе в 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
не перечислять пользователей, в то время как функция оболочки делает.