обычный пользователь не может читать / proc / net / dev - PullRequest
5 голосов
/ 21 января 2012

Я почти уверен, что что-то здесь упускаю, но я не совсем уверен, что именно:

Вот что может видеть root:

root@opteron16:/# ls -l | grep proc
dr-xr-xr-x 290 root root     0 2012-01-14 02:03 proc
root@opteron16:/# ls -l proc | grep net
lrwxrwxrwx  1 root       root        8 2012-01-21 03:29 net -> self/net
root@opteron16:/# ls -l proc/net/ | grep dev
-r--r--r-- 1 root root 0 2012-01-14 02:05 dev

Этопользователь ganglia:

root@opteron16:/# cat /etc/passwd | grep ganglia
ganglia:x:111:119:Ganglia Monitor:/var/lib/ganglia:/bin/false

Когда я пытаюсь получить доступ к / proc / net / dev с этим пользователем:

root@opteron16:/# su -s /bin/bash ganglia
ganglia@opteron16:/$ ls -l /proc | grep net
lrwxrwxrwx  1 root    root     8 2012-01-21 19:49 net -> self/net
ganglia@opteron16:/$ ls -l /proc/net/
ls: reading directory /proc/net/: Invalid argument
total 0
ganglia@opteron16:/$ cat /proc/net/dev
cat: /proc/net/dev: No such file or directory

Было бы здорово не чувствовать себя таким глупым :).


Редактировать

Это то, что я заметил, и никогда раньше не видел такого поведения:

root@opteron16:/proc# ls -l | grep "self -"
lrwxrwxrwx  1 root       root       64 2012-01-22 00:01 self -> 29095
root@opteron16:/proc# ls -l | grep "self -"
lrwxrwxrwx  1 root       root       64 2012-01-22 00:01 self -> 29097
root@opteron16:/proc# ls -l | grep "self -"
lrwxrwxrwx  1 root       root       64 2012-01-22 00:01 self -> 29099

Ответы [ 2 ]

9 голосов
/ 04 июня 2013

Скорее всего, это связано с тем, что ваше ядро ​​было скомпилировано с grsec. т.е.

$ uname -a
Linux xxxx 3.2.13-grsec-xxxx-grs-ipv6-64 #1 SMP Thu Mar 29 09:48:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Я видел, как это происходило на серверах, размещенных ovh, так как это ядро ​​по умолчанию, которое они устанавливают, чтобы вы включили сетевую загрузку через их инструменты администратора.

Подводя итог, вы можете сделать одно из:

  1. запустите вашу программу как root (+1 для безопасности ovh!)
  2. установить ядро ​​Ubuntu по умолчанию на этом поле
  3. крик на некоторое время (мой любимый)
0 голосов
/ 21 января 2012

Я не могу воспроизвести это на моем Ubuntu

Может быть, ваша система имеет какие-то оболочки chroot'd?

Работает ли cat /proc/self/net/dev для вашего пользователя "ganglia"?

...