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)