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.