Der Befehl id zeigt Benutzer- und Gruppen-IDs des aktuellen oder eines angegebenen Benutzers an. Er ist besonders nützlich für die Überprüfung von Zugriffsrechten und die Verwendung in Shell-Skripten.
Syntax des “id”-Befehls
Die Syntax für den id-Befehl lautet wie folgt:
id [OPTIONEN] [BENUTZERNAME]
OPTIONEN- Flags, die die Ausgabe steuern.BENUTZERNAME- Der abzufragende Benutzer. Ohne Angabe werden die Daten des aktuellen Benutzers angezeigt.
Verwendung des “id”-Befehls
Ohne Optionen zeigt id die Benutzer-ID (uid), die primäre Gruppen-ID (gid) und alle zusätzlichen Gruppenmitgliedschaften (groups) an:
id
Die Ausgabe sieht beispielsweise so aus:
uid=1000(max) gid=1000(max) groups=1000(max),4(adm),27(sudo),998(docker)
Falls SELinux aktiviert ist, erscheint zusätzlich der Sicherheitskontext:
uid=1000(max) gid=1000(max) groups=1000(max) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Informationen zu einem anderen Benutzer abrufen
Um die IDs eines bestimmten Benutzers abzufragen, übergibst du den Benutzernamen als Argument:
id anna
uid=1001(anna) gid=1001(anna) groups=1001(anna),998(docker)
Bei numerischen Benutzernamen besteht eine Besonderheit: Existiert ein Benutzer mit dem Namen 1010, hat die Namenssuche Vorrang. Um explizit nach der numerischen ID zu suchen, stellst du ein + voran:
id +1010
Nur die Benutzer-ID anzeigen
Mit der Option -u (--user) gibst du nur die Benutzer-ID aus:
id -u
1000
Nur die Gruppen-ID anzeigen
Die Option -g (--group) zeigt nur die primäre Gruppen-ID:
id -g
1000
Alle Gruppenmitgliedschaften anzeigen
Mit -G (--groups) erhältst du die IDs aller Gruppen, denen der Benutzer angehört:
id -G
1000 4 27 998
Namen statt Nummern ausgeben
Die Option -n (--name) zeigt Namen anstelle von numerischen IDs. Sie funktioniert nur in Kombination mit -u, -g oder -G:
id -un
max
Die Ausgabe von id -un entspricht der von whoami. Mit id -Gn erhältst du das gleiche Ergebnis wie mit dem Befehl groups:
id -Gn
max adm sudo docker
Reale statt effektive IDs anzeigen
Die Option -r (--real) gibt die realen Werte anstelle der effektiven aus. Diese unterscheiden sich beispielsweise bei Programmen mit gesetztem SUID-Bit:
id -ur
SELinux-Sicherheitskontext anzeigen
Mit -Z (--context) zeigst du nur den SELinux-Sicherheitskontext:
id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Falls SELinux nicht aktiviert ist, gibt der Befehl eine Fehlermeldung aus.
NUL-Trennzeichen für Skripte
Die Option -z (--zero) trennt die Ausgabeelemente mit dem NUL-Zeichen statt mit Leerzeichen. Das ist nützlich für die Weiterverarbeitung in Skripten:
id -zG
Zusammenfassung
Der Befehl id liefert schnell Informationen über Benutzer- und Gruppenzugehörigkeiten. Mit den verschiedenen Optionen lässt sich die Ausgabe gezielt auf einzelne Werte beschränken, was die Verwendung in Shell-Skripten erleichtert.