LuaSocket требует суперпользователя для создания сервера

Когда я пытаюсь создать сокет, прослушивающий любой порт, используя LuaSocket в Ubuntu, создание сокета завершается с ошибкой «отказано в доступе»:

require("socket")

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

if not server then print(msg) end

однако, когда тот же скрипт выполняется от имени суперпользователя (используя sudo), создание сервера работает нормально. Есть ли причина, по которой LuaSocket не может нормально создать сервер? Могу ли я сделать что-нибудь (либо в Lua, либо на сервере Ubuntu), чтобы не было необходимости выполнять скрипт как суперпользователь?


person Henrik Ilgen    schedule 21.05.2012    source источник


Ответы (1)


Это не специфическая проблема LuaSocket, а преднамеренное ограничение безопасности Ubuntu (и многих других Linux/UNIX). Непривилегированные пользователи не могут привязываться к портам ниже 1024. Вы можете использовать privbind, чтобы обойти это ограничение.

person Oleg V. Volkov    schedule 21.05.2012
comment
Спасибо за ваш ответ, он мне очень помог! :) - person Henrik Ilgen; 21.05.2012