SERVICES(5)

NOME
services - lista de serviços da rede Internet

DESCRIÇÃO
services é um arquivo ASCII provendo um mapeamento amigável entre nomes textuais para serviços da internet, e consignar suporte para números de portas e tipo de protocolos. Todos programas de rede deveriam pesquisar este arquivo para receber um número de porta (e protocolo) para seus serviços. As rotinas da biblioteca C getservent(3), getservbyname(3), getservbyport(3), setservent(3), e endservent(3) suportam a pesquisa destes arquivos a partir de programas.

Números de portas são designadas pelo IANA (Internet Assigned Numbers Authority), e atualmente a política deles é designar ambos os protocolos TCP e UDP quando designando um número de porta. Então, a maioria dos lançamentos deveriam ter duas entradas, mesmo que somente para serviços TCP.

Números de portas abaixo de 1024 (tmabém chamada de portas 'de baixo nível') podem somente ser acessadas pelo root (veja bind(2), tcp(7), and udp(7).) Isto é feito para clientes conectando portas de baixo nível possam confiar que o serviço executado na porta é uma implementação padrão, e não um serviço qualquer rodado por um usuário da máquina. Os famosos números de portas especificados pela IANA são normalmente localizados no espaço do superusuário.

A presença de um lançamento para um seviço no arquivo services não significa necessariamente que o serviço esteja rodando atualmente na máquina. Veja inetd.conf(5) para configurações de serviços da Internet ofereçido. Note que nem todos os serviços de rede serão iniciados pelo inetd(8), e assim podem não aparecer em inetd.conf(5). Em particular, servidores de notícias (NNTP) e correio (SMTP) são muitas vezes inicializados pelos scripts de boot do sistema.

O localização do arquivo services é definido por _PATH_SERVICES em /usr/include/netdb.h. Isto é usualmente selecionado por /etc/services.

Cada linha descreve um serviço, e é da forma:

    service-name port/protocol [aliases ...]

onde:

service-name
    é um nome amigável para o serviço é conhecido por e procurado sob. Ele é sensivel ao caso. Muitas vezes, o programa cliente é nomeado depois do service-name.

port
    é o número da porta (em decimal) para uso deste serviço.

protocol
    é o tipo de protocolo para ser usado. Este campo deve estar compatível com a entrada no arquivo protocols(5) tcp e udp.

aliases
    e um espaço opcional ou tabulação separa listas de outros nomes para este serviço (mas veja a seção PROBLEMAS abaixo). Novamente, os nome são sensíveis ao caso.

Espaços ou tabulações podem ser usadas para separar os campos.

Comentários são iniciados pelo sinal (#) e continuam até o final da linha. Linhas em branco são ignoradas.

O service-name deveria iniciar na primeira coluna do arquivo, desde que espaços iniciais não sejam tirados. service-names poderiam ter qualquer caractere imprimível excluindo espaço ou tambulação, de qualquer forma, um escolha conservadora de caracteres deveria ser usada para minimizar problemas de interomperabilidade. Por exemplo: a-z, 0-9, e hífen (-) poderiam ser sensível a seleção.

Linhas que não combinam com este formato não poderiam estar presente no arquivo. (Atualmente, elas são silenciosamente omitidas por getservent(3), getservbyname(3), and getservbyport(3). De qualquer forma, este comportamento precisaria contar com ele.)

Conforme compatibilidade pregressa para as caracteristicas, a barra (/) entre o número da porta e o nome do protocolo podem, na realidade, ser uma barra ou uma vírgula (,). Uso da vírgula em modernas instalações não é recomendado.

Este arquivo pode ser distribuído sobre uma rede usando um serviço de nomeação como Yellow Pages/NIS or BIND/Hesiod.

Um exemplo do arquivo services pode parecer com:

    netstat         15/tcp
    qotd            17/tcp          quote
    msp             18/tcp          # message send protocol
    msp             18/udp          # message send protocol
    chargen         19/tcp          ttytst source
    chargen         19/udp          ttytst source
    ftp             21/tcp
    # 22 - unassigned
    telnet          23/tcp

PROBLEMAS
Havia um máximo de 35 aliases, devido a maneira que o código do getservent(3) era escrito.

Linhas com mais caracteres que BUFSIZ (atualmente 1024) serão ignoradas por getservent(3), getservbyname(3), e getservbyport(3). De qualquer, isto também faz a próxima linha ter uma análise misturada.

ARQUIVOS

/etc/services
    A lista de serviços da rede Internet

/usr/include/netdb.h
    Definição de _PATH_SERVICES

VEJA TAMBÉM
getservent(3), getservbyname(3), getservbyport(3), setservent(3), endservent(3), protocols(5), listen(2), inetd.conf(5), inetd(8).

Determindas RFC, mais recentemente RFC 1700, (AKA STD0002)

Guia de Serviços para Yellow Pages

Guia de Serviços para BIND/Hesiod

TRADUÇÃO E REVISÃO PARA A LÏNGUA PORTUGUESA
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Roberto Selbach Teixeira <robteix@zaz.com.br> (revisão)