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.
idid <user> — Gibt UID, GID und Gruppen eines bestimmten Nutzers aus.
id www-dataid root — Zeigt die Informationen des root-Nutzers. UID und GID sind hier jeweils 0.
id rootNumerische IDs
id -u — Gibt nur die UID (Benutzer-ID) des aktuellen Nutzers als Zahl aus.
id -uid -u <user> — Gibt nur die UID eines bestimmten Nutzers aus.
id -u www-dataid -g — Gibt nur die primäre GID (Gruppen-ID) des aktuellen Nutzers aus.
id -gid -g <user> — Gibt nur die primäre GID eines bestimmten Nutzers aus.
id -g deployid -G — Gibt alle Gruppen-IDs (primär + zusätzlich) als leerzeichengetrennte Zahlen aus.
id -Gid -G <user> — Gibt alle Gruppen-IDs eines bestimmten Nutzers aus.
id -G jpkNamen statt Nummern
id -un — Gibt nur den Benutzernamen aus (Name statt UID). Entspricht whoami.
id -unid -gn — Gibt nur den Namen der primären Gruppe aus.
id -gnid -Gn — Gibt alle Gruppennamen (primär + zusätzlich) als leerzeichengetrennte Namen aus.
id -Gnid -Gn <user> — Gibt alle Gruppennamen eines bestimmten Nutzers aus.
id -Gn jpkPraxisbeispiele & 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 $USERstat -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.phpVerwandte Werkzeuge
whoami — Gibt nur den aktuellen Benutzernamen aus. Entspricht id -un.
whoamigroups — Gibt alle Gruppennamen aus, denen der aktuelle Nutzer angehört. Entspricht id -Gn.
groupsgroups <user> — Gibt die Gruppenmitgliedschaften eines bestimmten Nutzers aus.
groups www-datagetent passwd <user> — Zeigt den vollständigen passwd-Eintrag eines Nutzers: UID, GID, Home-Verzeichnis, Shell.
getent passwd www-datagetent group <group> — Zeigt Details einer Gruppe samt aller Mitglieder.
getent group sudogrep <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.
Weiterführende Links
- ubuntuusers-Wiki: Benutzer und Gruppen – deutschsprachige Einführung in UIDs, GIDs und Gruppenverwaltung
- Wikipedia: Benutzerkennung (Unix) – Hintergrund zu UID, GID sowie realer und effektiver Kennung