Linux Lua: 在 https 请求中出现 permission denied

我一直在尝试使用 Lua 中的 ssl.https 库发送 https 请求,但是无论我给出什么网址,我都会收到权限被拒绝的消息,包括没有其他值,如头文件等。我使用的 linux 是 CentOS Linux 版本 7。

以下是示例代码:

    local httpsocket = require("socket.http")
    local httpssocket = require ("ssl.https")
    local ltn12 = require("ltn12")

    local res, code, response_headers, status = httpssocket.request("https://www.google.com")

    module:log("info","%s %s",code.."",response_headers);

代码本身是 prosody 插件的一部分,此示例中的最后一行打印出以下内容:

    permission denied <nil>

我的问题是,如何解决此问题以便我可以访问页面?

编辑:似乎问题可能是服务运行的用户并需要 root 权限,否则会为低于 1024 的端口抛出 ACCES 错误。有人知道在这种情况下该怎么做吗?

点赞
用户14187689
用户14187689

所以...在好几次尝试修复之后,我终于找到了解决方法。如果您在centOS上遇到了服务无法发送http/https请求的问题,有一个单独的命令必须运行以解决此问题:

setsebool -P nis_enabled 1

对于那些可能遇到类似问题但不完全与我相同的人,可以查看/var/log/audit/audit.log和与您的程序、进程、服务等相关的任何内容,然后使用以下命令:

grep <pattern_to_match_specific_log> /var/log/audit/audit.log | audit2why

这将给您一个失败的原因以及如何解决它。

2021-01-12 14:48:54