Can you help me to find the PID's user name?

Sometimes my server has high load. When I run top -c, I cannot even find the owner of a process which is causing load on the server.

  • We were experiencing server load issue due to bulk php process, so that i had this question, we can then find them using 'lsof -p xxxx'. Jan 14, 2016 at 6:22

6 Answers 6


I'm surprised nobody has put this up yet:

Try the -p option of the ps command.

For instance, if you have PID 1234, run:

ps -u -p 1234

The -u was added to include the username in the output.

You can then use grep or awk, etc. to extract the info you want.

  • 1
    You were a tick faster than me. You're waking up earlier? Depending on the Linux distrbution, ps u 1234 (Debian) or just ps 1234 (Android with Busybox) also works.
    – ott--
    Jan 10, 2016 at 7:02
  • This works nicely with pgrep when you only have the process name (not the PID) or when you want to see the owners of multiple processes with a similar name: ps -u -p $(pgrep yourProcessName) May 4, 2023 at 18:42

/proc/processID/status will have the information about user's ID which you can use to find the username.

This does the same:

uid=$(awk '/^Uid:/{print $2}' /proc/YOUR_PROCESS_ID/status)
getent passwd "$uid" | awk -F: '{print $1}'

Replace YOUR_PROCESS_ID with your process ID number.

  • The best answer, since it's the fastest, especially if changed to : getent passwd $(< /proc/"$uid"/loginuid) | sed 's/\:.*$//'
    – dess
    Oct 11, 2021 at 14:10
  • This is the best answer if you are looking for fullname. Oct 17, 2022 at 10:06

Get only username from a PID:

USERNAME="$( ps -o uname= -p "${PID}" )"

You can also combine it with a pgrep. In this example we show all usernames executing some .php file:

pgrep -f '\.php' | xargs -r ps -o uname= -p | sort -u

Find only one username running a certain unique process:

USERNAME="$( pgrep -nf 'script\.php' | xargs -r ps -o uname= -p )

I think the shortest way is:

id -nu </proc/<pid>/loginuid

The /proc/<pid>/loginuid file has the uid number of the user running the process; id -nu reads uid from stdin and returns a user name.

  • Nice. Is there a file of uid to user names that you can map the loginuid to a string user name? Dec 5, 2019 at 14:11
  • Good answer, one of the best, but needs correction a bit. This will work (bash example): id -nu $(< /proc/<pid>/loginuid) (to work with any POSIX shell sholud be escaped with backticks instead of "$( )" bash construction). The answer with ps is more flexible, you can get also real and saved user name. But this answer command is several times faster than ps --no-headers -o euser -p <pid>.
    – dess
    Oct 11, 2021 at 13:58

What do you want exactly? On my system, if I run 'top -c' I get:

  PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND                                                                                                                        
  2873 matt      20   0 3022m 1.6g 1.6g S     22 21.6   2245:42 /usr/lib/virtualbox/VirtualBox --comment ESX5-1 --startvm 4fd78ee9-739a-4d53-a0ce-4f9819ab9411 --no-startvm-errormsgbox        
  29764matt      20   0 2779m 1.4g 1.3g S      5 18.4 210:33.51 /usr/lib/virtualbox/VirtualBox --comment win2008-2 --startvm 202ec2b7-ae12-40e9-af76-2be429e553d7 --no-startvm-errormsgbox     
  17281root      20   0     0    0    0 S      2  0.0   0:05.90 [kworker/u:2]                                                                                                              

So the PID (processus/task identifier) is the first column, and the user account the processus runs under is the second column


You can use the following command.

use ps aux| grep "pid"


ls -ld /proc/"pid"/exe
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Feb 13, 2022 at 17:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .