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)