Comment répertorier les groupes dont un utilisateur UNIX est membre?

79

Avec pts m groupnameje peux lister les utilisateurs dans un groupe. Comment puis-je faire le contraire - c’est-à-dire lister tous les groupes dont un utilisateur est membre?

(J'ai besoin de cela pour trouver le nom d'un groupe dont je connais un utilisateur membre, mais je ne connais pas le nom du groupe ...)

Précision:
cette question est compliquée par le fait que je ne suis pas l'administrateur système et que je ne dispose pas d'autorisations root (loin de là). Au lieu de cela, je fais partie d'un groupe de "modérateurs" qui administrent une petite partie du système - pour être spécifique, la branche physique du syndicat des étudiants du système informatique central de mon université.

Au sein de notre branche, nous avons un groupe de différents groupes d’accès pour les personnes chargées des tâches. Dans ce cas, une des deux personnes responsables de quelque chose (peu importe) a été remplacée, et je cherchais à examiner l'autre utilisateur pour déterminer les droits d'accès que je devrais accorder au remplaçant.

J'ai maintenant été en mesure de résoudre le problème immédiat (le nouveau type ne peut pas accéder à un dossier) en examinant le dossier pour voir qui a accès, puis en sélectionnant le groupe dans la liste. Cependant, il se peut que cet utilisateur ait davantage de privilèges que je ne connais pas, aussi la question est-elle toujours d'actualité, même si ce n'est pas si grave.

Tomas Aschan
la source

Réponses:

105

Vous pouvez également utiliser la groupscommande:

[root @ ftp ~] # groupes root
root: root bin daemon sys adm roue de disque

si tout échoue, il y a aussi bon vieux grep:

[root @ ftp ~] # grep racine / etc / group
racine: x: 0: racine
bin: x: 1: racine, bin, démon
démon: x: 2: racine, bin, démon
sys: x: 3: root, bin, adm
adm: x: 4: root, adm, daemon
disque: x: 6: racine
roue: x: 10: racine, admin
John T
la source
1
grep ^root: /etc/grouppourrait être mieux.
Dennis Williamson
non ce n'est pas car il ne répertorie qu'un des groupes dont root est un membre peut-être avec un peu d'awk c'est plus clair :) grep root / etc / group | awk -F: '{print $ 1}'
matthias krull
3
Examiner / etc / group semble bien, mais si votre système utilise un répertoire centralisé (NIS, LDAP, ActiveDirectory,?), Vous ne trouverez pas une liste complète des groupes dans ce répertoire. Seules les définitions de groupe local seraient dans ce fichier.
Slartibartfast le
La commande groups kczme donne seulement usr, bien que je sache que cet utilisateur est membre d'un groupe appelé fkm. Que manque-t-il?
Tomas Aschan
Pas sûr, /etc/groupcoller vos @Tomas.
John T
28
$ id [username]
coneslayer
la source
" $: Command not found".
Tomas Aschan
8
Le $représente l'invite de commande. Commencez à taper avec id.
coneslayer
Ne me donne toujours pas grand-chose:uid=[five digits](kcz) gid=30(usr)
Tomas Aschan
il affiche uid = gid = groups =, donc la troisième chose que je reçois est la liste des groupes auxquels un utilisateur appartient.
MKJ
6

Je l'ai trouvé - bien plus tard, mais je l'ai fait! =)

Tout comme

$>pts m [group name]

liste tous les membres d'un groupe,

$>pts m [user name]

répertorie tous les groupes dont un utilisateur est membre. C'était trop simple: P

Tomas Aschan
la source
3
pts n'est pas une commande standard.
user2284570
1
@ user2284570: Peut-être pas. Mais il était clairement indiqué dans la question (la toute première chose, en fait, et avec la syntaxe en surbrillance) que c’est la ptsquestion qui nous occupe.
Tomas Aschan