O usuário não root não consegue abrir nenhuma porta

O usuário não root não consegue abrir nenhuma porta

Eu tenho um sistema Linux embarcado construído usando Yocto. Recém-saído da construção, ele só tinha um usuário root. Criei um novo usuário. Este novo usuário não consegue abrir nenhuma porta no sistema, mesmo que sejam maiores que 1024.

Para um teste rápido quando executo python -m SimpleHTTPServercomo root, simplesmente funciona.

~ # python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

No entanto, quando o executo usando o usuário não root, ele falha devido a problemas de acesso.

~ $ python -m SimpleHTTPServer
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/SimpleHTTPServer.py", line 235, in <module>
    test()
  File "/usr/lib/python2.7/SimpleHTTPServer.py", line 231, in test
    BaseHTTPServer.test(HandlerClass, ServerClass)
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 606, in test
    httpd = ServerClass(server_address, HandlerClass)
  File "/usr/lib/python2.7/SocketServer.py", line 414, in __init__
    self.socket_type)
  File "/usr/lib/python2.7/socket.py", line 191, in __init__
    _sock = _realsocket(family, type, proto)
socket.error: [Errno 13] Permission denied

Tentei portas diferentes para isso e o usuário não root não consegue abrir nenhuma delas.

Meu entendimento é que apenas o usuário root pode acessar portas <1024, mas outras portas podem ser usadas por usuários não root, desde que sejam gratuitas. No entanto, não consigo usar nenhuma porta. Qualquer indicação será realmente útil.

Responder1

Existe um grupo inet(3003)que foi atribuído ao usuário, mas não a novos usuários. Depois de adicionar o usuário não root a este grupo, ele poderá abrir as portas e python -m SimpleHTTPServerfuncionar perfeitamente.

Consegui chegar a esses detalhes executando /sbin/ifconfigcomo usuário não root. Executá-lo mencionou especificamente que ineto soquete não estava disponível e mexer um pouco me levou à solução acima.

informação relacionada