【问题标题】:Apache Permission denied to connect to socketApache 权限被拒绝连接到套接字
【发布时间】:2013-01-05 01:12:59
【问题描述】:

我正在使用 sys/socket.h。当我尝试在 Apache 服务器环境中建立套接字连接时。它无法与 Permission Defined Errno 13 建立套接字连接。 我需要给 apache 一些权限吗?

谢谢!!

【问题讨论】:

  • 这可能对您有帮助:13PermissionDenied,但有些代码确实对我们有帮助。

标签: c++ c apache sockets


【解决方案1】:

暂时禁用 SELinux 看看会发生什么:

以 root 身份编辑 /etc/selinux/config 并将 SELINUX 行更改为 SELINUX=disabled。如果这解决了您的问题,您应该重新启用 SELinux 并与策略编写者联系(即在您的发行版 bugtracker 中提交错误报告)。

感谢乔纳斯的编辑;)

几个月前,我在 Fedora 服务器上遇到了类似的问题,只需要运行 setsebool -P httpd_can_network_connect 1 即可修复

【讨论】:

  • 如果您建议禁用selinux,请同时提及副作用。很多人并不真正了解它的作用,因此值得指出这一点尤其是在 Web 服务的上下文中。
  • @JonasWielicki 你明白 temporally 的意思吗?
  • 好点——我实际上设法忽略了这一点。我对投反对票感到抱歉;我添加了几行以便能够删除downvote(只能在编辑后删除)。
  • 请注意,还有更细粒度的布尔值,例如如果你需要 SMTP,有一个特殊的布尔值。
  • 我觉得setenforce 0 最好暂时禁用selinux。
【解决方案2】:

如果您尝试将套接字bind() 连接到低于 1024 的端口,则需要超级用户权限。

尝试connect() 时,如果本地防火墙禁止连接,可能会返回EACCES (13)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多