无法读取 /proc/net/tcp

无法读取 /proc/net/tcp

以 root 身份:

root@xxxx:~# ls -l /proc/net/tcp
-r--r--r-- 1 root root 0 Jun  4 17:19 /proc/net/tcp

作为普通用户:

production@xxxx:~$ ls -l /proc/net/tcp
ls: cannot access /proc/net/tcp: No such file or directory

2个问题:

  1. 为什么尽管拥有正确的权限,我却无法以普通用户身份读取该文件?
  2. 我怎样才能让那个该死的盒子允许我以普通用户的身份读取该文件?

显然,我不能用啤酒来回答你的问题,但如果你碰巧住在法国尼斯附近,我可以做点什么:)

答案1

长话短说,这是由于该盒子上安装了内核。它使用grsec 补丁禁止此特定操作,以“提高”安全性。

因此,修复方法是:

  1. 以 root 身份运行你的程序
  2. 安装更合理的内核(例如,默认的 Ubuntu 内核)

答案2

这通常应该是用户可以访问的。

请检查目录的权限...

ls -ld /proc/net

...看看你得到了什么。

这是一个虚拟文件系统,因此在大多数情况下您无法真正更改其权限。

状态可能因某种原因被破坏。在这种情况下,您可能需要重新启动服务器才能修复它。

相关内容