El usuario no root no puede abrir ningún puerto

El usuario no root no puede abrir ningún puerto

Tengo un sistema Linux integrado creado con Yocto. Recién salido de compilación, solo tenía un usuario root. Creé un nuevo usuario. Este nuevo usuario no puede abrir ningún puerto en el sistema aunque sea mayor que 1024.

Para una prueba rápida cuando ejecuto python -m SimpleHTTPServercomo root, simplemente funciona.

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

Sin embargo, cuando lo ejecuto con un usuario no root, falla debido a problemas de acceso.

~ $ 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

Probé diferentes puertos para esto y el usuario no root no puede abrir ninguno de ellos.

Tengo entendido que solo el usuario root puede acceder a los puertos <1024, pero los usuarios no root pueden utilizar otros puertos siempre que estén libres. Sin embargo, no puedo utilizar ningún puerto. Cualquier consejo será de gran ayuda.

Respuesta1

Hay un grupo inet(3003)que se asignó al usuario pero no a ningún usuario nuevo. Una vez que agrego el usuario no root a este grupo, puede abrir los puertos y python -m SimpleHTTPServerfunciona bien.

Pude llegar a estos detalles ejecutándolo /sbin/ifconfigcomo usuario no root. Ejecutarlo mencionó específicamente que inetel socket no estaba disponible y trastear un poco me llevó a la solución anterior.

información relacionada