• Skip to primary navigation
  • Skip to main content
sharadchhetri

sharadchhetri

Tutorials On Linux, Unix & Open Source

  • Home
  • Linux Commands
  • Resources
    • Learn Linux
  • My WordPress plugins

How to list users above or below particular user id

June 6, 2014 by Sharad Chhetri 2 Comments

In rare cases, you will find sometimes we need to list users above or below particular user id. Such requirement mostly come when you are playing around users related troubleshooting.

For an example, we want to list the users which are above userid 500 in Linux System.

The user related information like username and user id is available in /etc/passwd file in Linux/Unix like Operating System.

First check in which row the user id is present in /etc/passwd file. Generally it is located at 3 rd row in /etc/passwd file.

passwd file

List users which has above user-id 500

List users which has above user-id 500, use below given syntax:
-F: means separator
$3 represents 3rd row
< 500 means above 500

awk -F: ‘$3 < 500' /etc/passwd
linux@tuxworld:~/Desktop$ awk -F: '$3 < 500' /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
colord:x:102:105:colord colour management daemon,,,:/var/lib/colord:/bin/false
messagebus:x:103:107::/var/run/dbus:/bin/false
lightdm:x:104:108:Light Display Manager:/var/lib/lightdm:/bin/false
avahi-autoipd:x:105:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:106:113:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:107:46:usbmux daemon,,,:/home/usbmux:/bin/false
kernoops:x:108:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:109:119:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:110:122:RealtimeKit,,,:/proc:/bin/false
speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
hplip:x:112:7:HPLIP system user,,,:/var/run/hplip:/bin/false
saned:x:113:123::/home/saned:/bin/false
mysql:x:114:125:MySQL Server,,,:/nonexistent:/bin/false
whoopsie:x:115:126::/nonexistent:/bin/false
dhcpd:x:116:128::/var/run:/bin/false
ftp:x:117:129:ftp daemon,,,:/srv/ftp:/bin/false
bind:x:118:130::/var/cache/bind:/bin/false
gdm:x:119:131:Gnome Display Manager:/var/lib/gdm:/bin/false
jetty:x:120:132::/usr/share/jetty:/bin/false
libvirt-qemu:x:121:133:Libvirt Qemu,,,:/var/lib/libvirt:/bin/false
libvirt-dnsmasq:x:122:134:Libvirt Dnsmasq,,,:/var/lib/libvirt/dnsmasq:/bin/false
debian-tor:x:123:135::/var/lib/tor:/bin/false
apt-mirror:x:124:136::/var/spool/apt-mirror:/bin/sh
vde2-net:x:125:137::/var/run/vde2:/bin/false
sshd:x:126:65534::/var/run/sshd:/usr/sbin/nologin
smmta:x:127:138:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp:x:128:139:Mail Submission Program,,,:/var/lib/sendmail:/bin/false
postfix:x:129:140::/var/spool/postfix:/bin/false
postgres:x:130:142:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
clamav:x:131:143::/var/lib/clamav:/bin/false
festival:x:132:29::/home/festival:/bin/false
ntp:x:133:144::/home/ntp:/bin/false
linux@tuxworld:~/Desktop$ 

Now from above information, we will filter more. By using above output, we will list only User name and its user id.

List only User name and its user id above user-id 500

Use the below given Syntax

Here, {print $1,$3;} prints only row no. 1 and 3.
Whereas we have again used the -F: for separator.

awk -F: '$3 < 500' /etc/passwd|awk -F: '{print $1,$3;}'

See the below given output from above command

linux@tuxworld:~/Desktop$ awk -F: '$3 < 500' /etc/passwd|awk -F: '{print $1,$3;}'
root 0
daemon 1
bin 2
sys 3
sync 4
games 5
man 6
lp 7
mail 8
news 9
uucp 10
proxy 13
www-data 33
backup 34
list 38
irc 39
gnats 41
libuuid 100
syslog 101
colord 102
messagebus 103
lightdm 104
avahi-autoipd 105
avahi 106
usbmux 107
kernoops 108
pulse 109
rtkit 110
speech-dispatcher 111
hplip 112
saned 113
mysql 114
whoopsie 115
dhcpd 116
ftp 117
bind 118
gdm 119
jetty 120
libvirt-qemu 121
libvirt-dnsmasq 122
debian-tor 123
apt-mirror 124
vde2-net 125
sshd 126
smmta 127
smmsp 128
postfix 129
postgres 130
clamav 131
festival 132
ntp 133
linux@tuxworld:~/Desktop$ 

Second Scenario : List users below particular user id

Use the given syntax for listing user below user id 500

-F: means separator
$3 represents 3rd row
> 500 means below 500

awk -F: '$3 > 500' /etc/passwd

See the below given output

linux@tuxworld:~/Desktop$ awk -F: '$3 > 500' /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
sharad:x:1000:1000:sharad chhetri,111,91-000000,91-0000001:/home/sharad:/bin/bash
linux:x:1002:1002::/home/linux:/bin/bash
FOSS:x:1004:1004::/home/FOSS:/bin/sh
linuxtolinux:x:1006:1006::/home/linuxtolinux:/bin/bash
vbox:x:1007:1007::/home/vbox:/bin/sh
ram:x:1008:1008::/home/ram:/bin/sh
red:x:1009:1009::/home/red:/bin/sh
joe:x:1010:1010::/home/joe:/bin/ksh
john:x:1011:1011:John k,222,000001010,9100234-1,System administrator:/home/john:/bin/sh
linux@tuxworld:~/Desktop$ 

List only User name and its user id below user-id 500

awk -F: '$3 > 500' /etc/passwd|awk -F: '{print $1,$3;}'

See below given output:

linux@tuxworld:~/Desktop$ awk -F: '$3 > 500' /etc/passwd|awk -F: '{print $1,$3;}'
nobody 65534
sharad 1000
linux 1002
FOSS 1004
linuxtolinux 1006
vbox 1007
ram 1008
red 1009
joe 1010
john 1011
linux@tuxworld:~/Desktop$ 

Share this:

  • Twitter
  • Facebook
  • More
  • Print
  • Email
  • LinkedIn
  • Reddit
  • Tumblr
  • Pinterest
  • Pocket
  • Telegram
  • WhatsApp
  • Mastodon

Related posts:

  1. script to change group from a file having list of users
  2. create a system account below uid 500 on RHEL/CentOS/Scientific Linux
  3. How to change login banner message in GUI mode in CentOS 6 or above version.
  4. How to print particular line number by using sed command
  5. How to list all installed python modules
  6. list files and directories by 4 commands in linux
  7. linux command to list the files from rpm package without extracting
  8. How to set DHCP offered ip address to particular ethernet in freebsd
  9. how to mount NAS storage in owncloud to keep all users data
  10. Secondary Logging : Save All Users History Command Output As Log

Filed Under: Linux, Linux Commands Tagged With: awk, linux command

Reader Interactions

Comments

  1. Edward says

    February 20, 2017 at 1:55 pm

    Why not simplify
    awk -F: ‘$3 > 500’ /etc/passwd|awk -F: ‘{print $1,$3;}’
    to
    awk -F: ‘$3 > 500 {print $1,$3;}’ /etc/passwd

    ?

    This saves at least one invocation of the ‘awk’ command ๐Ÿ™‚

    Reply
    • Sharad Chhetri says

      February 20, 2017 at 6:08 pm

      ๐Ÿ™‚ It is there Edward.

      Regards
      Sharad

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Copyright © 2023 ยท
The material in this site cannot be republished either online or offline, without our permission.
Proudly Blogging From Bharat.

  • Contact
  • About Me
  • My WordPress plugins
  • Privacy Policy