Recently got a dedicated server running CentOS 6.7, we have ran updates and noticed that top is only showing processes for the current user.
[myuser@server2 ~]$ top -b -n1
top - 20:19:20 up 1 day, 10:09, 3 users, load average: 0.80, 0.50, 0.41
Tasks: 11 total, 1 running, 10 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32880988k total, 26893324k used, 5987664k free, 140872k buffers
Swap: 1046520k total, 0k used, 1046520k free, 19532120k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1648 myuser 20 0 98.8m 1020 688 S 0.0 0.0 0:00.00 man
1651 myuser 20 0 103m 1184 1016 S 0.0 0.0 0:00.00 sh
1652 myuser 20 0 103m 684 500 S 0.0 0.0 0:00.00 sh
1656 myuser 20 0 103m 912 752 S 0.0 0.0 0:00.07 less
3363 myuser 20 0 100m 1708 700 S 0.0 0.0 0:00.04 sshd
3364 myuser 20 0 105m 1916 1524 S 0.0 0.0 0:00.00 bash
8337 myuser 20 0 14940 1096 880 R 0.0 0.0 0:00.00 top
30429 myuser 20 0 100m 1696 696 S 0.0 0.0 0:00.16 sshd
30430 myuser 20 0 105m 1924 1536 S 0.0 0.0 0:00.01 bash
31132 myuser 20 0 100m 1692 692 S 0.0 0.0 0:00.05 sshd
31133 myuser 20 0 105m 1928 1536 S 0.0 0.0 0:00.04 bash
However when ran with sudo i get the normal output I would expect
[myuser@server2 ~]$ sudo top -bn1
top - 20:22:08 up 1 day, 10:12, 3 users, load average: 0.36, 0.40, 0.39
Tasks: 166 total, 1 running, 165 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32880988k total, 26898188k used, 5982800k free, 141196k buffers
Swap: 1046520k total, 0k used, 1046520k free, 19532188k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32705 otherusr 20 0 21.9g 5.8g 15m S 39.8 18.3 28:47.76 java
1 root 20 0 19280 1524 1232 S 0.0 0.0 0:00.76 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.40 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:03.20 kworker/u16:0
~~~~~omitted~~~~~
I have tried running top not in batch mode and using the "u" & "U" and leaving it blank and pressing [enter], with no luck.
I'm pretty sure I'm running actual top, launching with absolute path had no impact.
$ which top
/usr/bin/top
$ file /usr/bin/top
/usr/bin/top: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
$ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
No toprc is present in /etc/
$ ls -a /etc | grep -c toprc
0
proc is mounted as follows
$ sudo cat /proc/mounts | grep proc
none /proc proc rw,relatime 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
$ sudo cat /etc/fstab | grep proc
proc /proc proc defaults 0 0
More details on Procs
[myuser@server2 ~]$ sudo -u otherusr ps -A
PID TTY TIME CMD
21921 pts/0 00:00:00 ps
32703 ? 00:00:00 screen
32705 pts/3 01:08:01 java
[myuser@server2 ~]$ sudo ls -l /proc/ | grep 32705
dr-xr-x--- 7 otherusr root 0 Sep 23 19:27 32705
[myuser@server2 ~]$ sudo ls -l /proc/32705/ | grep stat
-r-------- 1 otherusr root 0 Sep 23 21:54 mountstats
-r--r--r-- 1 otherusr root 0 Sep 23 19:27 stat
-r--r--r-- 1 otherusr root 0 Sep 23 19:27 statm
-r--r--r-- 1 otherusr root 0 Sep 23 19:27 status
[myuser@server2 ~]$ ls /proc/ | egrep "[0-9]{1,9}";
17363
17364
26124
26125
3363
3364
[myuser@server2 ~]$ sudo -u otheruser ls /proc/ | egrep "[0-9]{1,9}"
26132
32703
32705
[myuser@server2 ~]$ umask
0002
[root@server2 ~]# umask
0022
Any Ideas?
sudo cat /proc/mounts | grep proc
?/proc/[pid]
special files, a user who can't check the/proc/[pid]/stat
for a given pid can't display information about the process in top etc. The mount option is the most common way I know for a user being denied such access.ls -l /proc/1/stat
andcat /proc/1/stat
when run as the problem user?sestatus | grep -i status
?