Wie liste ich die Gruppen auf, denen ein UNIX-Benutzer angehört?

79

Mit pts m groupnamekann ich die Benutzer in einer Gruppe auflisten. Wie kann ich das Gegenteil tun - das heißt, alle Gruppen auflisten, in denen ein Benutzer Mitglied ist?

(Ich brauche dies, um den Namen einer Gruppe zu finden, der ich einen Benutzer kenne, der Mitglied ist, aber ich kenne den Gruppennamen nicht ...)

Erläuterung:
Diese Frage wird durch die Tatsache erschwert, dass ich nicht der Systemadministrator bin und keine Root-Berechtigungen (weit davon entfernt) habe. Stattdessen gehöre ich zu einer Gruppe von "Moderatoren", die einen kleinen Teil des Systems verwalten - genauer gesagt den Physikzweig des Studentenwerks im zentralen IT-System meiner Universität.

In unserer Branche gibt es eine Reihe verschiedener Zugangsgruppen für Verantwortliche. In diesem Fall wurde eine von zwei Personen, die für etwas verantwortlich sind (egal was), ersetzt, und ich wollte den anderen Benutzer untersuchen, um herauszufinden, welche Zugriffsrechte ich für den Ersatz vergeben sollte.

Ich konnte jetzt das unmittelbare Problem lösen (der neue Benutzer kann nicht auf einen Ordner zugreifen), indem ich den Ordner untersuchte, um festzustellen, wer Zugriff hat, und dort die Gruppe aus der Liste auswählte. Es gibt jedoch möglicherweise weitere Berechtigungen, die dieser Benutzer haben sollte, von denen ich nichts weiß. Daher ist die Frage für mich immer noch relevant, auch wenn sie nicht so aktuell ist.

Tomas Aschan
quelle

Antworten:

105

Sie können auch den folgenden groupsBefehl verwenden:

[root @ ftp ~] # gruppiert root
root: root bin daemon sys adm festplattenrad

Wenn alles andere fehlschlägt, gibt es auch gutes altes 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
quelle
1
grep ^root: /etc/groupkönnte besser sein.
Dennis Williamson
Nein ist es nicht , da es nur eine der Gruppen listet Wurzel Mitglied vielleicht mit einem bisschen awk ist sein klares :) grep root / etc / group | awk -F: ‚{$ 1 drucken}‘
matthias krull
3
Das Untersuchen von / etc / group hört sich nett an, aber wenn Ihr System ein zentrales Verzeichnis (NIS, LDAP, ActiveDirectory,?) Verwendet, finden Sie dort keine vollständige Liste der Gruppen. In dieser Datei befinden sich nur lokale Gruppendefinitionen.
Slartibartfast
Der Befehl groups kczgibt mir nur usr, obwohl ich weiß, dass dieser Benutzer Mitglied einer Gruppe namens ist fkm. Was fehlt?
Tomas Aschan
Nicht sicher, Pastebin Sie Ihre /etc/group@Tomas.
John T
28
$ id [username]
Kegeltöter
quelle
" $: Command not found".
Tomas Aschan
8
Das $stellt die Eingabeaufforderung dar. Beginnen Sie mit id.
Coneslayer
Gib mir immer noch nicht viel:uid=[five digits](kcz) gid=30(usr)
Tomas Aschan
Es wird uid = gid = groups = angezeigt. Als Drittes erhalte ich die Liste der Gruppen, zu denen ein Benutzer gehört.
MKJ
6

Fand es - viel später, aber ich tat es! =)

Genauso wie

$>pts m [group name]

listet alle Mitglieder einer Gruppe auf,

$>pts m [user name]

Listet alle Gruppen auf, denen ein Benutzer angehört. Es war zu einfach: P

Tomas Aschan
quelle
3
pts ist kein Standardbefehl.
user2284570
1
@ user2284570: Vielleicht nicht. In der Frage wurde jedoch eindeutig festgestellt (und zwar als erstes und mit Hervorhebung der Syntax), dass es sich um ptsdiese Frage handelt.
Tomas Aschan