我很确定我在这里遗漏了一些东西,但我不确定到底是什么:
这是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
这是神经节用户:
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
答案 0 :(得分:9)
最有可能的原因是,您的内核已经使用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托管的服务器上,因为这是他们安装的默认内核,可以通过他们的管理工具启用netboot。
总而言之,您可以执行以下操作之一:
答案 1 :(得分:0)
我无法在我的ubuntu
上复制此内容也许你的系统有某种chroot&shell;
cat /proc/self/net/dev
适用于您的"神经节"用户?