Ubuntu 普通用户可以';t read/proc/net/dev

Ubuntu 普通用户可以';t read/proc/net/dev,ubuntu,permissions,Ubuntu,Permissions,我很确定我遗漏了什么,但我不确定到底是什么: 这是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@opter

我很确定我遗漏了什么,但我不确定到底是什么:

这是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

我不能在我的ubuntu上复制这个

也许你的系统有一些chroot的外壳


cat/proc/self/net/dev
是否适用于您的“ganglia”用户?

最有可能的原因是,您的内核已使用grsec编译。i、 e

$ 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托管的服务器上看到过这种情况,因为这是他们为您安装的默认内核,用于通过管理工具启用netboot

总之,您可以执行以下操作之一:

  • 以root用户身份运行程序(+1表示安全ovh!)
  • 在此框中安装默认的ubuntu内核
  • 尖叫一会儿(我的最爱)

  • 不,ganglia用户无法访问/proc/self/net中的任何内容。它可以cd到那个目录中,但一旦进入目录就什么也做不了。只是说,关于OVH的评论仍然是正确的。我有一个副总裁的问题。