【问题标题】:Linux Lua: Permission denied on https requestLinux Lua:对 https 请求的权限被拒绝
【发布时间】:2020-12-18 06:15:00
【问题描述】:

我一直在尝试使用 Lua 中的 ssl.https 库发送 https 请求,但是无论我提供什么 url,我总是获得权限被拒绝,并且没有其他值,如标头等。我使用的 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);

代码本身是韵律插件的一部分,本示例中的最后一行将其打印出来:

    permission denied <nil>

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

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

【问题讨论】:

  • 端口低于 1024 的限制与listen 相关,但与connect 无关。这可能与防火墙或加载 ssl 库限制有关。

标签: linux sockets https lua permission-denied


【解决方案1】:

所以...在再次尝试修复此问题后,我终于找到了解决方案。如果您遇到服务无法在 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

这将为您提供失败的原因以及如何修复它

【讨论】:

    猜你喜欢
    • 2019-09-20
    • 1970-01-01
    • 2011-04-22
    • 2012-12-18
    • 2016-01-13
    • 1970-01-01
    • 2021-01-07
    • 2020-07-23
    • 1970-01-01
    相关资源
    最近更新 更多