Как мне перечислить группы, в которые входит пользователь UNIX?

79

С помощью pts m groupnameя могу перечислить пользователей в группе. Как я могу сделать наоборот - то есть перечислить все группы, в которые входит пользователь?

(Мне нужно это, чтобы найти имя группы, в которую я знаю пользователя, членом которого я являюсь, но я не знаю имя группы ...)

Пояснение:
этот вопрос усложняется тем фактом, что я не являюсь системным администратором и что у меня нет прав root (отнюдь нет). Вместо этого я являюсь частью группы «модераторов», которые управляют небольшой частью системы, а точнее - физическим отделением студенческого союза в центральной ИТ-системе моего университета.

В нашем филиале у нас есть группа различных групп доступа для людей, которые отвечают за вещи. В этом случае один из двух людей, ответственных за что-то (неважно, что), был заменен, и я искал другого пользователя, чтобы выяснить, какие права доступа я должен дать замене.

Теперь я смог решить непосредственную проблему (новый парень не может получить доступ к папке), изучив папку, чтобы узнать, у кого есть доступ, и выбрав группу из списка. Однако у этого пользователя может быть больше привилегий, о которых я не знаю, поэтому вопрос все еще актуален для меня, хотя и не так остро.

Томас Ашан
источник

Ответы:

105

Вы также можете использовать groupsкоманду:

[root @ ftp ~] # группы root
root: root bin daemon sys adm диск wheel

если все остальное не есть и старый добрый grep:

[root @ ftp ~] # grep root / etc / group
корень: х: 0: корень
Бен: х: 1: корень, бен, демон
Демон: х: 2: корень, бен, демон
SYS: х: 3: корень, бен, адм
а.с.в: х: 4: корень, ADM, демон
диск: х: 6: корень
колесо: х: 10: корень, администратор
Джон Т
источник
1
grep ^root: /etc/groupможет быть лучше.
Деннис Уильямсон
нет, это не так, как он только перечисляет одну из групп, в которую root входит, может быть, с небольшим количеством awk, это более понятно :) grep root / etc / group | awk -F: '{print $ 1}'
matthias krull
3
Изучение / etc / group звучит хорошо, но если ваша система использует централизованный каталог (NIS, LDAP, ActiveDirectory,?), Вы не найдете там полного списка групп. В этом файле будут только определения локальной группы.
Slartibartfast
Команда groups kczтолько дает мне usr, хотя я знаю, что этот пользователь является членом группы с именем fkm. Чего не хватает?
Томас Ашан
Не уверен, /etc/groupвставь свой @Tomas.
Джон Т
28
$ id [username]
coneslayer
источник
" $: Command not found"
Томас Ашан
8
$Представляет собой командную строку. Начните печатать с id.
Coneslayer
Все еще не дает мне много:uid=[five digits](kcz) gid=30(usr)
Томас Ашан
он показывает uid = gid = groups =, так что третье, что я получаю, это список групп, к которым принадлежит пользователь.
MKJ
6

Нашел - намного позже, но я нашел! знак равно

Как только

$>pts m [group name]

перечисляет всех участников в группе,

$>pts m [user name]

перечисляет все группы, в которые входит пользователь. Это было слишком просто: P

Томас Ашан
источник
3
pts не стандартная команда.
user2284570 13.12.15
1
@ user2284570: Возможно, нет. Но в вопросе было четко указано (на самом деле самое первое и с подсветкой синтаксиса), ptsчто этот вопрос касается.
Томас Ашан