Я хочу знать группы какого-то пользователя.
$dscl . list /groups
filterByUSer theFindUser
Возможно ли это (даже если мне нужно перечислить все группы, а затем отфильтровать по пользователю) простым способом?
Попробуйте команду, приведенную ниже.
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 [username]
[username]
аргумент является необязательным. По умолчанию предполагается вошедший в систему пользователь. Вывод будет включать числовой идентификатор пользователя uid
и список всех групп вместе с их идентификатором группы gid
, членом которой является пользователь. Первая группа в выходных данных является основной группой пользователя.
Чтобы перечислить только имена групп, введите:
id -Gn [username]
Чтобы перечислить только номера групп, введите:
id -G [username]
Райан Гейтс
Дэвид Андерсон
Райан Гейтс
id
его самостоятельно. Он печатал идентификатор группы, имя в скобках и использовал запятую в качестве разделителя. Это будет работать только для поиска текущего пользователя. Хотя это решило мою проблему.Мотти Шнеор
Дэвид Андерсон