普通用户无法读取/ proc / net / dev

时间:2012-01-21 18:54:53

标签: 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@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

2 个答案:

答案 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. 以root身份运行您的程序(安全性为+1!)
  2. 在此框中安装默认的ubuntu内核
  3. 尖叫一会儿(我最喜欢的)

答案 1 :(得分:0)

我无法在我的ubuntu

上复制此内容

也许你的系统有某种chroot&shell;

cat /proc/self/net/dev适用于您的"神经节"用户?