id — Benutzer- und Gruppen-IDs anzeigen

id zeigt UID, GID und alle Gruppen eines Nutzers – ideal für Rechte-Diagnose, Root-Checks in Skripten und das Debuggen von Berechtigungen unter Linux.

id beantwortet die Frage „Wer bin ich – und was darf ich?" in einer Zeile: Es gibt die UID (Benutzer-ID), die primäre GID (Gruppen-ID) und sämtliche Gruppenmitgliedschaften aus, unter SELinux zusätzlich den Sicherheitskontext. Damit ist es das Werkzeug der Wahl, wenn Dateirechte klemmen, ein Dienst unter dem falschen Konto läuft oder ein Skript prüfen muss, ob es als root ausgeführt wird. Dieser Guide zeigt dir die Optionen für Mensch und Maschine – von der vollen Übersicht bis zu maschinenlesbaren Einzelwerten für deine Skripte.

Grundlagen

id — Gibt UID, GID und alle Gruppenmitgliedschaften des aktuellen Nutzers aus.

id

id <user> — Gibt UID, GID und Gruppen eines bestimmten Nutzers aus.

id www-data

id root — Zeigt die Informationen des root-Nutzers. UID und GID sind hier jeweils 0.

id root

Numerische IDs

id -u — Gibt nur die UID (Benutzer-ID) des aktuellen Nutzers als Zahl aus.

id -u

id -u <user> — Gibt nur die UID eines bestimmten Nutzers aus.

id -u www-data

id -g — Gibt nur die primäre GID (Gruppen-ID) des aktuellen Nutzers aus.

id -g

id -g <user> — Gibt nur die primäre GID eines bestimmten Nutzers aus.

id -g deploy

id -G — Gibt alle Gruppen-IDs (primär + zusätzlich) als leerzeichengetrennte Zahlen aus.

id -G

id -G <user> — Gibt alle Gruppen-IDs eines bestimmten Nutzers aus.

id -G jpk

Namen statt Nummern

id -un — Gibt nur den Benutzernamen aus (Name statt UID). Entspricht whoami.

id -un

id -gn — Gibt nur den Namen der primären Gruppe aus.

id -gn

id -Gn — Gibt alle Gruppennamen (primär + zusätzlich) als leerzeichengetrennte Namen aus.

id -Gn

id -Gn <user> — Gibt alle Gruppennamen eines bestimmten Nutzers aus.

id -Gn jpk

Praxisbeispiele & Skripte

[ $(id -u) -eq 0 ] && echo root — Prüft, ob der aktuelle Nutzer root ist (UID 0). Verbreitetes Muster in Installationsskripten.

[ $(id -u) -eq 0 ] && echo 'Running as root' || echo 'Not root'

id -nG | grep -qw docker && echo 'in docker group' — Prüft, ob der aktuelle Nutzer Mitglied der Gruppe docker ist.

id -nG | grep -qw docker && echo 'docker access OK'

id -u $USER — Gibt die UID des in der Umgebungsvariablen $USER gespeicherten Nutzers aus.

id -u $USER

stat -c '%u %g' <file> — Zeigt UID und GID des Dateieigentümers. Praktisch zum Abgleich mit der Ausgabe von id.

stat -c '%u %g' /var/www/html/index.php

Verwandte Werkzeuge

whoami — Gibt nur den aktuellen Benutzernamen aus. Entspricht id -un.

whoami

groups — Gibt alle Gruppennamen aus, denen der aktuelle Nutzer angehört. Entspricht id -Gn.

groups

groups <user> — Gibt die Gruppenmitgliedschaften eines bestimmten Nutzers aus.

groups www-data

getent passwd <user> — Zeigt den vollständigen passwd-Eintrag eines Nutzers: UID, GID, Home-Verzeichnis, Shell.

getent passwd www-data

getent group <group> — Zeigt Details einer Gruppe samt aller Mitglieder.

getent group sudo

grep <user> /etc/passwd — Zeigt den rohen passwd-Eintrag eines Nutzers direkt aus der Systemdatei.

grep www-data /etc/passwd

Fazit

id ist ein reines Lese-Kommando ohne destruktives Risiko und damit die schnellste Antwort auf jede Rechte-Frage. Für Menschen liefert der nackte Aufruf die volle Übersicht; für Skripte sind die maschinenlesbaren Varianten Gold wert: id -u für die reine UID, id -g für die primäre Gruppe und id -nG für eine leerzeichengetrennte Liste der Gruppennamen. Der Klassiker [ "$(id -u)" -eq 0 ] als root-Check gehört in jedes ernsthafte Installationsskript. Ein Detail für den Ernstfall: Bei setuid-Programmen unterscheiden sich reale und effektive UID – id zeigt beide an, sodass du erkennst, mit welchen Rechten ein Prozess tatsächlich läuft.

Verwandte Kommandos

  • useradd – neue Benutzerkonten samt UID und Gruppen anlegen
  • su – zu einem anderen Benutzer oder zu root wechseln
  • sudo – einzelne Befehle mit erhöhten Rechten ausführen