Ping 权限拒绝
今天在 CentOS 上遇到一个奇怪的问题,ping 程序在 root 用户下能正常使用,但是在非 root 用户下则出现如下错误:
1 | user@host:~ $ ping 127.0.0.1 |
在 StackExchage 上也有人遇到了类似的问题,他需要在 PHP 中调用 ping 命令,并且他通过执行 setenforce 0
可以让 ping 命令正常使用,但是经我测试发现这种方法对我无效。
之后在 LinuxQuestions 上发现有人指出 ping 命名将创建原始套接字而非 TCP 套接字,然而 Linux 系统对于普通用户创建原开套接字是禁止的,因此我们就看到了文章开始的错误,针对这一问题他也提出了解决方案,即为 ping 命令添加 suid 权限。
1 | user@host:~ $ chmod +s /bin/ping |