Learn why ps output shows UID instead of username.
One of our reader asked me:
I see userid in place of the username in
ps -ef command output, please explain.
In this article, we will see why ps output shows UID instead of username sometimes. In some recent Linux distributions like RHEL 7, it shows cropped username ending with + sign. Let’s see the reason behind ps doesn’t show username.
ps -ef command output looks like below –
root 541 1 0 17:48 ? 00:00:00 /usr/sbin/NetworkManager --no-da root 559 541 0 17:48 ? 00:00:00 /sbin/dhclient -d -q -sf /usr/li root 791 1 0 17:48 ? 00:00:00 /usr/bin/python -Es /usr/sbin/tu root 1067 1 0 17:48 ? 00:00:00 /usr/libexec/postfix/master -w
where the first column is username who owns that particular process. Sometimes you see output like below –
kernelt+ 1354 1335 0 17:50 pts/0 00:00:00 top OR 1001 1354 1335 0 17:50 pts/0 00:00:00 top
where username in ps output is numeric or cropped username ending with +
This is because
ps -ef output restricts username up to 8 characters. If your username is longer than 8 characters then it will display UID or cropped version of it. Here we have kerneltalks user on our server.
# cat /etc/passwd |grep kernel kerneltalks:x:1001:1001::/home/kerneltalks:/bin/bash
If you observe, user kerneltalks has UID 1001 and hence we could see that UID in
ps -ef output.