INETD(8)

NAME
inetd - internet “super-server”

SINOPSIS
inetd [-d] [-q queuelength] [fichero de configuración]

DESCRIPCIÓN
Inetd debería ejecutarse en el arranque mediante /etc/rc.local (véase rc(8)). A partir de ese momento está a la escucha de conexiones en cierto conector (socket) de internet. Cuando encuentra una conexión en uno de sus conectores, decide a qué servicio de conexión corresponde, y llama a un programa para atender la solicitud. Cuando este programa termina, continúa a la escucha en el conector (salvo en algún caso que se describirá más adelante). Esencialmente, inetd permite ejecutar un demonio para llamar a otros muchos, reduciendo la carga del sistema.

La opciones disponibles para inetd son:

-d  Activa la depuración.

-q longitudcola
    Asigna el valor indicado al tamaño de la cola de escucha del conector. Por defecto es 128.

En ejecución, inetd lee su información de configuración de un fichero de configuración, que por defecto es /etc/inetd.conf. Tiene que haber una entrada para cada campo del fichero de configuración, con entradas para cada campo separadas por tab o espacios. Los comentarios se distinguen por un ``#'' al principio de la línea. Tiene que haber una entrada para cada campo. Los campo del fichero de configuración son de la siguiente forma:

    nombre de servicio
    tipo de conector
    protocolo
    wait/nowait[.max]
    usuario[.grupo]
    programa servidor
    argumentos del programa servidor

Para especificar un servicio basado en Sun-RPC la entrada debería contener estos campos.

    nombre servicio/versión
    tipo de conector
    rpc/protocolo
    wait/nowait[.max]
    usuario[.grupo]
    programa servidor
    argumentos del programa servidor

La entrada nombre de servicio es el nombre de un servicio válido del fichero /etc/services. Para servicio “internos” (discutidos después), el nombre de servicio tiene que ser el nombre oficial del servicio (esto es, la primera entrada de /etc/services). Cuando se usa para especificar un servicio basado en Sun-RPC, este campo es un nombre de servicio RPC válido del fichero /etc/rpc. la parte a la derecha de “/” es el número de versión RPC. Esto puede ser simplemente un argumento numérico o un rango de versiones. Un rango está acotado por las versiones menor y mayor - “rusers/1-3”.

El tipo de conector (tipo de socket) debería ser “stream”, “dgram”, “raw”, “rdm”, or “seqpacket”, dependiendo de si el conector es un flujo, datagrama, en bruto, mensaje entregado fiable o conector de paquetes secuenciados.

El protocolo tiene que ser un protocolo válido como los dados en /etc/protocols. Pueden ser ejemplos “tcp” o “udp”. Los servicios basadso en Rpc se especifican con el tipo de servicio “rpc/tcp” o “rpc/udp”.

La entrada wait/nowait es aplicable a conectores de datagrama sólo (los otros conectores deberían tener una entrada “nowait” es este espacio). Si un servidor de datagrama conecta a su par, liberando el conector, así inetd puede recibir posteriores mensajes en el conector, esto se dice que es un serviodor “multi-hilo” y debería usar la entrada “nowait” Para los servidores de datagrama que procesa todos los datagramas entrantes por un conector y al fin y al cabo desconecta, el servidor se dice que es “hilo simple” y debería usar una entrada “wait”. Comsat(8) (biff(1)) y talkd(8) son ambos ejemplos del último tipo de servidor de datagramas. Tftpd(8) es una excepción; es un serviodr de datagrama que establece pseudoconexiones. Este se debe indicar como “wait” con el fin de evitar una carrera; el servidor leeel primer paquete, crea un nuevo coonector, entonces se desdobla y sale para permitir que inetd verifique nuevas solicitudes de servicio para activar nuevos servidores. El sufijo opcional “max” (separado de “wait” o “nowait” por un punto) especifica el máximo numero de instancias del servidor que se pueden activar desde inetd en un intervalo de 60 segundos. Cuando se omite “max” toma el valor por defecto de 40.

La entrada usuario debería contener el nombre de usuario bajo el que ejecutaría el servidor. Esto permite que a los servidores se les dé menos permisos que al root. Se puede especificar un nombre de grupo opcional añadiendo un punto al nombre de usuario seguido por el nombre de grupo. Esto permite a los servidores ejecutarse con un identificador de grupo (primario) diferente al especificado en el fichero /etc/passwd. Si se especifica un grupo y el usuario no es root, se asignan los grupos suplementarios asociados con ese usuario.

La entrada programa servidor debería contener la ruta completa del programa que se ejecutará por inetd cuando encuentre una solicitud en su conector. Si inetd proporciona este servicio internamente, esta entrada debería ser “internal”.

Los argumentos del programa servidor será como son normalmente los argumentos, empezando con argv[0], que es el nombre del programa Si proporciona este servicio internamente, la palabra “internal” debería estar en el lugar de esta entrada.

Inetd proporciona varios servicios “triviales” internamente usando rutinas con él mismo. “echo”, “discard”, “chargen” (generador de caracteres), “daytime” (fecha-hora en formato legible), y “time” (fecha-hora formato de máquina, en el formato del número de segundos desde medianoche de 1 de enero de 1900). Todos estos servicios están basadose n tcp. Para detalles de estos servicios, consulte el RFC adecuada del Network Information Center.

Inetd relee su fichero de configuración cuando recibe la señal de colgar SIGHUP. Se pueden añadir servicios, borrarlos o modificarlos cuando se lee el fichero de configuración. Inetd crea el fichero /var/run/inetd.pid que contiene su identificador de proceso.

VÉASE TAMBIÉN
comsat(8), fingerd(8), ftpd(8), rexecd(8), rlogind(8), rshd(8), telnetd(8), tftpd(8)

HISTORIA
El comando inetd apareció en 4.3BSD. El soporte para servicios basados en Sun-RPC se ha servido del modelo proporcionado por SunOS 4.1.