85

With pts m groupname I can list the users in a group. How can I do the opposite - that is, list all the groups that a user is a member of?

(I need this to find the name of a group that I know a user who is a member of, but I don't know the group name...)

Clarification:
This question is complicated by the fact that I am not the system administrator, and that I don't have root permissions (far from it). Instead, I am part of a group of "moderators" that administrate a small part of the system - to be specific, the physics branch of the student union at my university's central IT system.

Within our branch, we have a bunch of different access groups for people who are in charge of things. In this case, one of two people responsible for something (it doesn't matter what) have been replaced, and I was looking to examine the other user to find out what access rights I should give the replacement.

I have now been able to solve the immediate problem (the new guy not being able to access a folder) by examining the folder to see who has access, and there picking the group from the list. However, there might be more privileges that this user should have that I don't know of, so the question is still relevant for me, albeit not so acute.

user 99572 is fine
  • 3,397
  • 3
  • 30
  • 43
Tomas Aschan
  • 2,986
  • 10
  • 35
  • 38

3 Answers3

115

You can also use the groups command:

[root@ftp ~]# groups root
root : root bin daemon sys adm disk wheel

if all else fails there is also good old grep:

[root@ftp ~]# grep root /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
disk:x:6:root
wheel:x:10:root,admin
John T
  • 163,373
  • 27
  • 341
  • 348
  • 1
    `grep ^root: /etc/group` might be better. – Dennis Williamson Jul 26 '10 at 20:17
  • no it is not as it only lists one of the groups root is a member of maybe with a bit of awk its more clear :) grep root /etc/group|awk -F: '{ print $1 }' – matthias krull Jul 26 '10 at 20:55
  • 3
    Examining /etc/group sounds nice, but if your system is using a centralized directory (NIS, LDAP, ActiveDirectory, ?), you won't find a complete list of groups there. Only local group definitions would be in that file. – Slartibartfast Jul 27 '10 at 05:42
  • The command `groups kcz` only gives me `usr`, although I know that this user is member of a group called `fkm`. What is missing? – Tomas Aschan Aug 02 '10 at 21:06
  • Not sure, pastebin your `/etc/group` @Tomas. – John T Aug 02 '10 at 22:14
  • @John; I have very little privileges on this system - it's the central IT system at my university, and I have responsibility only for the small physics branch of the student union. – Tomas Aschan Aug 04 '10 at 10:06
  • @Tomas if you don't have permission what will you accomplish by knowing a user's group memberships? Maybe this is better handled by the server administrator. – John T Aug 05 '10 at 02:25
  • @slart well that is something the user would have to mention in their question. There is no one-size-fits-all answer, obviously. – John T Aug 05 '10 at 02:27
  • @John: Please see my update for clarification. – Tomas Aschan Aug 05 '10 at 10:14
  • `groups` has been superseded by `id` on some systems; `id -Gn root` would give the same output as in this answer. – Seamus May 17 '19 at 03:02
30
$ id [username]
coneslayer
  • 8,652
  • 1
  • 28
  • 23
6

Found it - way later, but I did! =)

Just as

$>pts m [group name]

lists all the members in a group,

$>pts m [user name]

lists all the groups a user is member of. It was too simple :P

Tomas Aschan
  • 2,986
  • 10
  • 35
  • 38
  • 3
    pts isn’t a standard command. – user2284570 Dec 13 '15 at 13:52
  • 1
    @user2284570: Perhaps not. But it was clearly stated in the question (the very first thing, in fact, and with syntax highlighting) that it's `pts` that this question concerns. – Tomas Aschan Dec 14 '15 at 07:27
  • @TomasAschan, maybe you can tell which specific UNIX it is. It may help other users find this Q more easily. – Mat M Jun 23 '23 at 10:15