id-commando: UID en groepen controleren, whoami, groups en aanvullende groepen
Om op een Linux-server de UID en de groepen van het huidige account te controleren, gebruik je het id-commando; heb je alleen de accountnaam nodig, dan gebruik je whoami, en voor alleen de groepsnamen groups. Toen de drie commando's na elkaar werden uitgevoerd op servers met AlmaLinux 9 en Debian 12 en de uitvoer werd vergeleken, gaven id -un en whoami dezelfde accountnaam, en gaf groups de groepenlijst van id met alleen de namen.
De uitvoer hieronder komt van een AlmaLinux 9.8-server met het root-account en van een Debian 12-server met een gewoon account. De naam en nummers van het inlogaccount en de aanvullende groepen zijn vervangen door voorbeeldwaarden (user1, 1000, adm, systemd-journal).
1️⃣ Basisgebruik van het id-commando
Als je id zonder opties uitvoert, verschijnt de informatie van het account dat de huidige shell heeft gestart op één regel. Uitgevoerd met het root-account waren alle drie de velden 0(root).
iduid=0(root) gid=0(root) groups=0(root)Het veld uid is het nummer en de naam van het account, en het veld gid is het nummer en de naam van de primaire groep (primary group). Het veld groups bevat alle groepen waartoe het account behoort, met de primaire groep vooraan.
Als je na id een accountnaam zet, verschijnt de informatie van dat account. Bij het gewone account user1, dat aanvullende groepen heeft, stonden in het veld groups na de primaire groep user1 ook adm en systemd-journal. Deze groepen waartoe het account naast de primaire groep behoort, zijn de aanvullende groepen (supplementary group).
id user1uid=1000(user1) gid=1000(user1) groups=1000(user1),4(adm),190(systemd-journal)Bij veel accounts hebben UID en gid hetzelfde nummer, waardoor je de twee getallen makkelijk als dezelfde waarde ziet, maar het account adm dat standaard op de server staat, had UID 3 en primaire-groepsnummer 4. Het account operator had root als primaire groep.
id admuid=3(adm) gid=4(adm) groups=4(adm)id operatoruid=11(operator) gid=0(root) groups=0(root)Als je meerdere accounts opgeeft, verschijnt er één per regel.
id root binuid=0(root) gid=0(root) groups=0(root)
uid=1(bin) gid=1(bin) groups=1(bin)Bij een account dat niet bestaat, verschijnt de fout [no such user], en de afsluitcode was 1.
id no-such-user9id: 'no-such-user9': no such userecho $?1De afsluitcode bij een bestaand account is 0, zodat je die in een script kunt gebruiken als voorwaarde om te controleren of een account bestaat.
2️⃣ Opties van het id-commando
Om uit de hele uitvoer maar één nummer aan een script door te geven, kies je met een optie één veld. -u toont de UID, -g het nummer van de primaire groep en -G alle nummers van de groepen waartoe het account behoort.
id -u0id -u daemon2id -G user11000 4 190Met -n erbij verschijnen namen in plaats van nummers. Bij het controleren van de groepen van user1 met [id -Gn] werden de drie nummers drie namen.
id -Gn user1user1 adm systemd-journalid -gn user1user1-n en -r gebruik je samen met een van de opties -u, -g en -G. Met alleen -n verscheen de fout hieronder.
id -nid: cannot print only names or real IDs in default format-r toont de echte (real) ID in plaats van de effectieve (effective) ID. In een shell van het root-account gaf [id -ur] 0. Als je twee of meer opties die een nummer kiezen, zoals -u en -g, samen opgeeft, verschijnt de fout [cannot print "only" of more than one choice]. Hieronder staan de opties op een rij.
| Optie | Kopiëren | Uitleg |
|---|---|---|
| -u--user | Toont het UID-nummer | |
| -g--group | Toont het nummer van de primaire groep | |
| -G--groups | Toont alle nummers van de groepen waartoe het account behoort | |
| -n--name | Toont samen met -u, -g of -G de naam in plaats van het nummer | |
| -r--real | Toont samen met -u, -g of -G de echte (real) ID in plaats van de effectieve ID |
| Optie | Kopiëren | Uitleg |
|---|---|---|
| -Z--context | Toont alleen de beveiligingscontext van het proces | |
| -z--zero | Scheidt de uitvoeritems met NUL-tekens in plaats van spaties; niet te gebruiken in de standaardindeling | |
| -a | Wordt alleen aanvaard voor compatibiliteit met andere versies van id en genegeerd | |
| --help | Toont de hulp | |
| --version | Versie tonen |
🔲 Simulator voor het id-commando
De simulator hieronder start met het account user1, dat aanvullende groepen heeft. Nadat je met de chip [🖊 Other window] de groep wheel hebt toegevoegd, kun je [id] en [id user1] vergelijken en met de chip [🔁 Log in again] de groepen van een nieuwe shell controleren.
3️⃣ Het whoami-commando en id -un
Heb je alleen de accountnaam van de huidige shell nodig, voer dan whoami uit. De man-pagina beschrijft whoami als hetzelfde commando als [id -un]. Met het root-account gaven beide commando's root.
whoamirootid -unrootOok met een gewoon account op de Debian 12-server gaven de twee commando's dezelfde accountnaam.
whoamiuser1id -unuser1whoami toont de accountnaam die hoort bij de huidige effectieve (effective) UID. Het commando controleert alleen het huidige account, dus als je er een accountnaam achter zet, verschijnt er een fout.
whoami user1whoami: extra operand 'user1'
Try 'whoami --help' for more information.De naam of het nummer van een ander account controleer je door dat account na id te zetten.
id -un user1user1Met -u in plaats van -un verschijnt op dezelfde plek het UID-nummer in plaats van de accountnaam.
4️⃣ Het groups-commando en aanvullende groepen
groups toont alleen de groepsnamen op één regel. Zonder accountnaam verschijnen de groepen van de huidige shell, en met het root-account was dat alleen root.
groupsrootMet een accountnaam verschijnen de accountnaam en na de dubbele punt de groepen. Met meerdere accounts verscheen er één per regel.
groups user1 daemonuser1 : user1 adm systemd-journal
daemon : daemonDe primaire groep en de aanvullende groepen worden op verschillende plekken vastgelegd. Aanvullende groepen staan als leden in het vierde veld van de groepsdatabase (/etc/group), en de primaire groep staat als nummer in het vierde veld van de accountinformatie (/etc/passwd).
getent group admadm:x:4:user1getent group user1user1:x:1000:getent passwd daemondaemon:x:2:2:daemon:/sbin:/sbin/nologinBij de groep user1, de primaire groep van user1, was het vierde veld leeg, en bij de aanvullende groep adm stond user1 als lid. De 2 in het vierde veld van de regel van het account daemon is het nummer van de primaire groep.
Om een account aan een aanvullende groep toe te voegen, gebruik je het usermod-commando in de vorm [usermod -aG groep account]. Met alleen -G zonder -a valt het account uit bestaande aanvullende groepen die niet in de lijst staan, dus zet je -a erbij.
groups zonder accountnaam toont de groepen van het huidige shellproces. De man-pagina legt uit dat deze waarde kan afwijken van de database als de groepsdatabase verandert.
Controleer daarom direct na een groepswijziging de groepen in de database met [groups account] of [id account], en log opnieuw in om ze in de shell door te voeren. Een commando dat de huidige groeps-ID wijzigt terwijl je ingelogd blijft, is newgrp.
🔢 FAQ & aanbevolen content
Accounts aanmaken
Linux: useradd-commando & passwd-commando
Commando's om een nieuw gebruikersaccount te maken en het wachtwoord van dat account in te stellen.
Account verwijderen
[Linux] userdel-commando: gebruikersaccounts verwijderen
Een commando dat een ongebruikt gebruikersaccount verwijdert en ook de thuismap opruimt.
Wachtwoordverloop
Linux chage-commando
Een commando dat de geldigheidsduur en de vervaldatum van het wachtwoord van een gebruikersaccount controleert en wijzigt.
ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.