Назад | Перейти на главную страницу

Почему «cat / proc / net / dev» показывает только 0 для пользователей без полномочий root?

Недавно я заметил, что мой скрипт для мониторинга сети вообще ничего не показал мне, когда он был запущен с пользователем без полномочий root.

Мой сценарий просто смотрит на /proc/net/dev который имеет следующее разрешение (444):

-r--r--r--  1 root  root 0 Feb 26 09:31 dev

Однако, даже если у всех есть доступ для чтения, я заметил, что пользователи без полномочий root не могут получить никаких данных.

> cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
dummy0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 bond0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
ip6tnl0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  sit0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 tunl0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

Когда я добавляю sudo к команде, вот результат, который я получаю

> sudo cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0: 69684609  360869    0    0    0     0          0    234060 419896366  484740    0    0    0     0       0          0
  eth1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
dummy0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 bond0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
ip6tnl0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  sit0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo: 113595057  801133    0    0    0     0          0         0 113595057  801133    0    0    0     0       0          0
 tunl0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

Мне интересно узнать, почему / proc / net / dev имеет такое поведение?

Кстати, на моем сервере используется Debian 8.3 (Джесси).

как указано в этой ссылке: https://stackoverflow.com/questions/8955724/regular-user-cant-read-proc-net-dev

Ваше ядро, вероятно, использует параметр компиляции grsec, который не позволяет вам получить доступ к статистике. Вам следует попробовать с другим ядром.