linux - 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错误。有谁知道在这种情况下该怎么做?
解决方案
所以......在再次尝试解决这个问题后,我终于找到了解决方案。如果您遇到服务无法在 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
这将为您提供失败的原因以及如何修复它
推荐阅读
- python - 是否有 asyncio 的 `call_at` 或 `call_later` 对于 anyio 的等价物?
- node.js - 在 MongoDB 中通过对象 id 抓取另一个对象内部的对象
- java - fcm 使用 java(tomcat) 推送发送
- python - Discord.py 带线程,RuntimeError: Timeout 上下文管理器应该在任务内部使用
- python - Python:迭代一系列数字作为 Plotly Dash 的输入
- c# - 构建项目后可以通过 ML-Agent 学习吗?
- sql - 如何在 Postgres 中求和
- c++ - 使用 std::sort 中的 lambda 函数指定的比较函数是否返回 bool 类型?
- sql - 我应该如何优化此行级安全策略以读取事件?
- configuration - 按下前缀时,tmux 将“\”更改为空格键