When you attempt to execute a critical bash script or access a secure directory on a Linux server and the kernel violently rejects you with a “Permission denied” error, you must mathematically prove exactly who the system thinks you are. A user is not defined by their username string (e.g., admin), but by their rigid numerical User ID (UID) and Group ID (GID). To force the kernel to dump the exact numerical identity matrix currently assigned to your session, you must use the id command.
Executing the Identity Interrogation
The id command interacts directly with the Linux kernel’s authorization matrix (specifically parsing /etc/passwd and /etc/group) to algorithmically map your human-readable username to your underlying numerical privileges.
To execute a full identity dump for your current session, open your terminal and type:
id
The exact millisecond you press Enter, the engine outputs a highly structured string containing three critical data points:
uid=1000(username): The absolute User ID. If this number is0, you mathematically possess absolute root privileges. If it is1000or higher, you are a standard, restricted user.gid=1000(username): Your primary, default Group ID.groups=1000(username),4(adm),27(sudo): A comma-separated matrix of every single secondary group your account is attached to. This mathematically proves exactly what elevated permissions (likesudo) you currently possess.
Interrogating a Remote Identity
If you are an administrator and need to forensically audit the numerical permissions of a different user on the server (e.g., a rogue service account named apache), you do not need to log into their account.
You can force the engine to calculate their identity by passing the username as an argument:
id apache
The kernel will instantly output the exact UID, GID, and group matrix associated with that specific account, proving mathematically what files the service is authorized to touch.