¿Cómo puedo permitir que un usuario no root use puertos por debajo de 1024?

Estoy trabajando con una aplicación que utiliza un puerto por debajo de 1024 porque originalmente estaba destinado a ejecutarse como root . Me gustaría depurar la aplicación en un IDE que abro como yo mismo (usuario no root) pero tengo privilegios sudo . Tengo razones contra la debugging remota así como para abrir el IDE bajo sudo.

Entonces, la única forma de hacerlo sería permitir que un usuario que no sea usuario root utilice puertos o un puerto por debajo de 1024. ¿Se puede hacer eso y cómo?

  • ¿Cómo puedo agregar una regla de envío ipfw a una pequeña snitch?
  • ¿Por qué el aeropuerto no se vuelve a conectar después de dormir o de apagarse?
  • Conéctese a la networking inalámbrica sin contraseña
  • MBP funciona bien, pero no es visible en la networking
  • ¿Cómo disminuyo el exceso de almacenamiento en la networking a través de Wireless-N?
  • Ping en Mavericks a finales de 2013 MacBook Pro lento y variable en comparación con Windows
  • Dos cápsulas de time en una networking, Macbook se conecta a la más lenta al realizar una copy de security
  • ¿Puedo convertir mi Old 2009 Imac en un server NAS multiuso?
  • La computadora portátil no se conecta a Internet después de dormir, sino que se conecta a la networking
  • Mantenga Mac mini en Wi-Fi (para compartir la pantalla), pero deshabilite el acceso a Internet ... ¿Cómo?
  • Alternativa de `ruta -n` de Linux en Mac
  • Redes entre 10.6.8 (Snow Leopard) y 10.12 (Sierra)
  • 2 Solutions collect form web for “¿Cómo puedo permitir que un usuario no root use puertos por debajo de 1024?”

    Si no puede cambiar su aplicación para usar un puerto superior a 1024, la forma más fácil sería tomar el puerto que está utilizando y asignarlo a un puerto superior a 1024.

    Puedes hacerlo usando el firewall, ipfw es la herramienta para configurar el firewall. También podría hacerlo usando 'nc', a veces conocido como ncat o netcat.

    Hay una pregunta aquí que brinda más detalles. El hilo también menciona "AuthBind", que es un package de código abierto que permite esto: abrir puertos por debajo de 1024 sin otorgar privilegios de administrador .

    Advertencia: si su debugging solo requiere una connection única, y no necesita depurar específicamente los events de connection / desconnection …

    Puede usar netcat (o nc en algunos sistemas).

    Establece su aplicación para abrir, por ejemplo, el puerto 12345 (que se puede abrir por el usuario). Luego usa netcat para abrir, digamos, el puerto 123 (privileged-users-only) y reenviar los datos al puerto 12345.

     # sudo nc -l 123 | nc localhost 12345 

    La primera mitad del command ejecuta netcat nc y le dice que escuche -l en el puerto 123 . La tubería networkingirige los datos de la primera instancia de netcat a otra. El segundo command se conecta a su aplicación y reenvía los datos.

    Tenga en count que tan pronto como ejecute este command, la segunda instancia de netcat se conectará a su aplicación. Si su aplicación va a comenzar a enviar datos inmediatamente, querrá conectar su cliente muy rápidamente y deberá tener cuidado con la forma en que se almacenan los datos.

    Si desea que el cliente pueda desconectarse y reconectarse sin tener que reiniciar netcat, en su lugar ejecute:

     # sudo nc -lk 123 | nc localhost 12345 

    El -k le dice a netcat que siga funcionando si el cliente se desconecta del puerto 123.

    Nuevamente, hay limitaciones con este método, ya que en gran medida se está renunciando al control del lado de la connection haciendo que netcat lo maneje por usted. Por otro lado, es muy rápido y fácil de instalar y desmontar, si eso es todo lo que necesita.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).