/etc/inetd.conf lista esses servidores e suas portas habituais. O comando inetd ouve em todas elas; quando detecta uma conexão em qualquer uma delas, ele executa o programa servidor correspondente.
/etc/inetd.conf descreve um servidor através de sete campos (separados por espaços):
/etc/services).
stream para conexão TCP, dgram para datagramas UDP.
tcp, tcp6, udp ou udp6.
wait ou nowait, para dizer ao inetd quando deve esperar ou não pelo fim do processo lançado antes de aceitar outra conexão. Para conexões TCP, facilmente multiplicáveis (multiplexable), você geralmente pode usar nowait. Para programas respondendo sobre UDP, você deve usar nowait apenas se o servidor é capaz de gerenciar várias conexões em paralelo. Você pode usar um ponto como sufixo nesse campo, seguido pelo número máximo de conexões autorizadas por minuto (o limite padrão é 256).
user.group.
argv[0] em C).
Exemplo 9.1. Excerto do /etc/inetd.conf
#:BSD: Shell, login, exec e talk são protocolos BSD. talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd ntalk dgram udp wait nobody.tty /usr/sbin/in.ntalkd in.ntalkd #:INFO: Serviços de informação ident stream tcp nowait nobody /usr/sbin/nullidentd nullidentd finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd
tcpd é frequentemente usado no arquivo /etc/inetd.conf. Permite limitar conexões de entrada aplicando regras de controle de acesso, documentadas na página de manual hosts_access(5), e configuradas nos arquivos /etc/hosts.allow e /etc/hosts.deny. Uma vez que tenha sido determinado que a conexão está autorizada, o tcpd executa o servidor real (como o in.fingerd no nosso exemplo). Vale a pena notar que o tcpd conta com o nome sob o qual foi invocado (isto é, o primeiro argumento, argv[0]) para identificar o programa real a rodar. Então você não deve iniciar a lista de argumentos com tcpd, mas com o programa que tem que ser envolto (wrapped).