Я хочу запустить сервер websocket, но не могу подключиться к нему с других машин. Только когда я запускаю сервер websocket с правами root, он работает. Так что, похоже, это проблема с разрешением.
Какие разрешения нужны моему пользователю, чтобы открыть сокет?
Обычно для открытия портов ниже 1024 требуется root-доступ, который охватывает большинство известных сервисов, таких как web (80), ssh (22), ftp (21) и т. Д.
Некоторые демоны могут быть настроены для прослушивания других портов выше порта 1024, что может позволить вам использовать их без полномочий root, но это зависит от продукта в зависимости от продукта.
Есть и другие способы обхода, например использование CAP_NET_BIND_SERVICE
, это описано более подробно в этом ответе, из которых сводится,
Короткий ответ: вы делаете:
setcap 'cap_net_bind_service=+ep' /path/to/program
И тогда, когда программа будет выполнена после этого, она будет иметь
CAP_NET_BIND_SERVICE
возможности.setcap
находится в пакете debianlibcap2-bin
.