406

The title says it all. What command I need to run from a terminal to find my user ID (UID)?

Braiam
  • 69,302
a06e
  • 14,313

5 Answers5

534

There are a couple of ways:

  1. Using the id command you can get the real and effective user and group IDs.

     id -u <username>
    

    If no username is supplied to id, it will default to the current user.

  2. Using the shell variable. (It is not an environment variable, and thus is not available in env).

     echo $UID
    
guntbert
  • 13,485
jobin
  • 28,667
  • 10
    How about GID ? – kangear Oct 29 '15 at 01:11
  • 28
    @kangear id -g – itsazzad Dec 18 '15 at 15:23
  • 1
    It's worth noting that, due to the fact that the variables are resolved before being passed to a command, we have that sudo echo ${UID} prints out 1000 (or whatever your sudoer user's UID is), whereas sudo id -u prints out 0. – adentinger Dec 19 '18 at 20:33
  • The username is optional, defaulting to yourself. Maybe square brackets would be better for indicating this, instead of angle brackets. – mwfearnley May 13 '19 at 15:44
  • 5
    The second part of this answer is wrong. The variable in question is explicitly not an environment variable. It's a shell variable. Big difference. You can see this with echo $UID versus env|grep ^UID in Bash, for example. This means in particular that the first method is more robust and the second will only work in shell scripts, not - say - in something like Python (python -c 'import os; print(os.environ)' to see the environment). – 0xC0000022L Dec 16 '20 at 15:39
  • 1
    @0xC0000022L That seems to be the case indeed. I get 1000 from echo $UID and an empty line from $ printenv UID. – Daniel C Dec 05 '23 at 11:22
126

Simply try

id

This will return your user ID, group ID, and all your groups.

TAq
  • 1,411
21

Try also:

getent passwd $USER

This will display user id, group id and home directory.

Or:

grep $USER /etc/passwd
wovano
  • 115
  • 2
  • 7
nux
  • 39,252
  • why to try long or alternative command while echo $UID and id -u is simple and exact according to question? – Pandya May 17 '14 at 13:37
  • 8
    thats right , but its good to know all options – nux May 17 '14 at 13:38
  • 1
    @Pandya: It's a good answer because e.g. on a custom embedded linux you might not have the other options. This answer was very useful to me. – DrP3pp3r May 29 '24 at 06:46
  • Note that the last command does not always work (user is not always defined in /etc/passwd), for example when using a network/domain login. – wovano Apr 16 '25 at 08:14
13

Get the User ID (UID) and Group ID (GID) for the running user

id -u  # user ID (UID)
id -g  # group ID (GID)

Example run and output for the active user (myself):

$ id -u
1000
$ id -g
1000

and for the root user (via sudo):

$ sudo id -u
[sudo] password for gabriel: 
0
$ sudo id -g
0

Note that the first user is generally 1000 for both the UID and GID, and the root user is generally 0 for both the UID and GID.

10

You can use id command.

Manpage