2 votos

¿Cómo puedo permitir que un usuario no-root para usar los puertos por debajo del 1024?

Estoy trabajando con una aplicación que utiliza un puerto por debajo del 1024, porque fue pensado originalmente para ser ejecutado como root. Me gustaría para depurar la aplicación en un IDE que me abra como a mí mismo usuario (no root) pero tengo sudo privilegios. Tengo razones en contra de la depuración remota así como la apertura de la IDE en virtud de sudo.

Así que la única manera para mí para hacer esto sería permitir que un usuario no-root para usar los puertos o en un puerto por debajo del 1024. Que se puede hacer y cómo?

3voto

Tony Williams Puntos 4903

Si usted no puede cambiar su app para utilizar un puerto superior al 1024, a continuación, la forma más fácil sería tomar el puerto que está utilizando y asignarla a un puerto superior al 1024.

Puedes hacerlo usando el firewall, ipfw es la herramienta para la configuración del firewall. Usted también podría hacerlo con 'nc' - a veces conocido como ncat o netcat.

Hay una pregunta aquí que da más detalles. El hilo también menciona "AuthBind" que es un paquete de código abierto que permite precisamente esto, la apertura de los puertos por debajo del 1024 sin conceder privilegios de root.

3voto

Shuft Puntos 420

Advertencia: Si su depuración sólo requiere una única conexión, y usted no necesita específicamente de depuración de conexión/desconexión de eventos...

Usted podría utilizar netcat (o nc en algunos sistemas).

Se establece que su aplicación, por ejemplo, el puerto 12345 (usuario-abrible). A continuación, debe usar netcat para, por ejemplo, el puerto 123 (privilegio de los usuarios) y enviar los datos al puerto 12345.

# sudo nc -l 123 | nc localhost 12345

La primera mitad de ejecuta el comando netcat nc y le dice que escuche -l en el puerto 123. La tubería redirige los datos de la primera netcat instancia de uno a otro. El segundo comando se conecta a su solicitud y envía los datos a través de.

Tenga en cuenta que tan pronto como se ejecuta este comando, la segunda instancia de netcat se conecta a su aplicación. Si tu aplicación va a empezar a empujar los datos inmediatamente, usted desea conectar su cliente muy rápidamente, y tendrá que tener cuidado acerca de cómo se almacenan los datos.

Si desea que el cliente sea capaz de desconectar y volver a conectar sin tener que reiniciar netcat, entonces, en lugar de ejecución:

# sudo nc -lk 123 | nc localhost 12345

El -k dice netcat para seguir funcionando si el cliente se desconecta de puerto 123.

De nuevo, no hay limitaciones con este método, ya que en gran medida está cediendo el control de la conexión del lado de las cosas por tener netcat manejar para usted. Por otro lado, es muy rápido y fácil de configurar y derribar, si eso es todo lo que usted necesita.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X