LuaSocket 需要超级用户权限来创建服务器。

当我尝试在 Ubuntu 上使用 LuaSocket 创建监听任何端口的套接字时,套接字的创建失败并显示“权限被拒绝”:

require("socket")

server, msg = socket.bind("*", 23)

if not server then print(msg) end

然而,当以超级用户身份(使用sudo)执行相同的脚本时,服务器的创建正常工作。有没有任何理由为什么LuaSocket通常不能创建服务器?我是否可以执行任何操作(无论是在Lua还是在Ubuntu服务器上)使得无需以超级用户身份执行脚本?

点赞
用户936986
用户936986

这不是 LuaSocket 特有的问题,而是 Ubuntu(以及许多其他 Linux / UNIX)的一个故意的安全限制。非特权用户无法绑定到1024以下的端口。您可以使用 privbind 来绕过此限制。

2012-05-21 11:21:22