Benutzerrechte werden in Gruppen organisiert. Mit wenigen Befehlen findest du heraus, welchen Gruppen ein Benutzer angehört oder welche Mitglieder eine Gruppe hat.

Primäre und sekundäre Gruppen

Jeder Benutzer gehört mindestens einer Gruppe an:

  • Primäre Gruppe – Wird neu erstellten Dateien zugewiesen. Normalerweise trägt sie denselben Namen wie der Benutzer.
  • Sekundäre Gruppen – Gewähren zusätzliche Rechte. Ein Benutzer kann beliebig vielen sekundären Gruppen angehören.

Die primäre Gruppe steht in /etc/passwd, sekundäre Gruppen in /etc/group.

Gruppen eines Benutzers anzeigen

Der Befehl groups

Der einfachste Weg, alle Gruppen eines Benutzers aufzulisten:

groups

Ausgabe für den aktuellen Benutzer:

john adm cdrom sudo dip plugdev lpadmin sambashare

Die erste Gruppe ist die primäre Gruppe.

Für einen anderen Benutzer gibst du den Namen als Argument an:

groups maria
maria : maria sudo docker

Der Befehl id

Der Befehl id liefert detailliertere Informationen – inklusive numerischer IDs:

id maria
uid=1001(maria) gid=1001(maria) groups=1001(maria),27(sudo),998(docker)

Die Ausgabe zeigt:

  • uid – Benutzer-ID
  • gid – ID der primären Gruppe
  • groups – Alle Gruppen (primäre und sekundäre)

Mit Optionen kannst du die Ausgabe filtern:

id -nG

Gibt nur die Gruppennamen aus, ohne IDs:

john adm cdrom sudo dip plugdev lpadmin sambashare
OptionWirkung
-nNamen statt IDs anzeigen
-gNur primäre Gruppe
-GAlle Gruppen

Mitglieder einer Gruppe auflisten

Mit getent group zeigst du alle Mitglieder einer bestimmten Gruppe:

getent group sudo
sudo:x:27:maria,tom,admin

Die Ausgabe ist durch Doppelpunkte getrennt:

  1. Gruppenname
  2. Passwort (x = in /etc/shadow)
  3. Gruppen-ID
  4. Mitglieder (kommagetrennt)

Falls keine Ausgabe erscheint, existiert die Gruppe nicht.

Alle Gruppen des Systems auflisten

Alle Gruppen stehen in /etc/group:

less /etc/group

Alternativ mit getent:

getent group

Der Vorteil von getent: Es zeigt auch Gruppen aus LDAP oder anderen Verzeichnisdiensten an.

Nur die Gruppennamen ohne weitere Details:

getent group | cut -d: -f1

Zusammenfassung

AufgabeBefehl
Eigene Gruppen anzeigengroups
Gruppen eines Benutzersgroups benutzername
Detaillierte Info mit IDsid benutzername
Mitglieder einer Gruppegetent group gruppenname
Alle Systemgruppengetent group