Список всех групп, к которым принадлежит пользователь в macOS

Я хочу знать группы какого-то пользователя.

$dscl . list /groups filterByUSer theFindUser

Возможно ли это (даже если мне нужно перечислить все группы, а затем отфильтровать по пользователю) простым способом?

Ответы (2)

Попробуйте команду, приведенную ниже.

id -Gn [user]

На моем Mac вывод id -Gn davidandersonприведен ниже.

staff everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer _analyticsusers com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh 2 1

Разделитель можно изменить с пробела на запятую, введя следующее.

groups="$(id -Gn davidanderson)"
groups="${groups// /,}"
echo "$groups"

Здесь вывод будет следующим.

staff,everyone,localaccounts,_appserverusr,admin,_appserveradm,_lpadmin,_appstore,_lpoperator,_developer,_analyticsusers,com.apple.access_ftp,com.apple.access_screensharing,com.apple.access_ssh,2,1

Я использую High Sierra, macOs 10.13.4 и оболочку bash.

Есть ли способ добавить разделитель между группами?
Вы имеете в виду кроме пробела? Может как запятая?
Благодарю за ваш ответ. В итоге я использовал idего самостоятельно. Он печатал идентификатор группы, имя в скобках и использовал запятую в качестве разделителя. Это будет работать только для поиска текущего пользователя. Хотя это решило мою проблему.
Есть идеи, какой API в какой инфраструктуре MacOS предоставляет эту информацию? Мне это нужно, но из моего кода Cocoa - и я не могу найти ответ...

Чтобы вывести список всех групп, к которым принадлежит пользователь, введите:

id [username]

[username]аргумент является необязательным. По умолчанию предполагается вошедший в систему пользователь. Вывод будет включать числовой идентификатор пользователя uidи список всех групп вместе с их идентификатором группы gid, членом которой является пользователь. Первая группа в выходных данных является основной группой пользователя.

Чтобы перечислить только имена групп, введите:

id -Gn [username]

Чтобы перечислить только номера групп, введите:

id -G [username]