首页 > 解决方案 > Linux Lua:对 https 请求的权限被拒绝

问题描述

我一直在尝试使用 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错误。有谁知道在这种情况下该怎么做?

标签: linuxsocketshttpsluapermission-denied

解决方案


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

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


推荐阅读