以 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
长话短说,这是由于该盒子上安装了内核。它使用grsec 补丁禁止此特定操作,以“提高”安全性。
因此,修复方法是:
- 以 root 身份运行你的程序
- 安装更合理的内核(例如,默认的 Ubuntu 内核)
答案2
这通常应该是用户可以访问的。
请检查目录的权限...
ls -ld /proc/net
...看看你得到了什么。
这是一个虚拟文件系统,因此在大多数情况下您无法真正更改其权限。
状态可能因某种原因被破坏。在这种情况下,您可能需要重新启动服务器才能修复它。