ID do artigo: 126645 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 3.1

PROBLEMA: Acesso negado ao abrir um pipe nomeado de um Service

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Se um serviço em execução na conta do sistema local tenta abrir um pipe nomeado em um computador que executa Windows NT versão 3.5 ou posterior, a operação pode falhar com um erro acesso negado (erro 5). Isso pode acontecer mesmo que o pipe foi criado com uma DACL NULL.

Causa

No Windows NT versão 3.1, um processo em execução na conta do sistema local pode se conectar a um recurso usando uma sessão de nulo. Por motivos de segurança, uso de sessão nulo é restrito por padrão no Windows NT versão 3.5 ou posterior.

Resolução

Você pode permitir o acesso para um pipe nomeado usando a sessão nulo adicionando o nome do pipe para a seguinte entrada do registro na máquina que cria o pipe nomeado:
   \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ 
      Parameters\NullSessionPipes
				
o nome do pipe adicionado a essa entrada é o nome após a última barra invertida na seqüência de caracteres usado para abrir o pipe. Por exemplo, se você usar a seguinte seqüência de caracteres para abrir o pipe:
   \\hardknox\pipe\mypipe
				
você adicionaria mypipe para a entrada NullSessionPipes no computador denominado hardknox.

Você deve reinicializar ou reiniciar (parar e, em seguida, iniciar) o serviço de servidor para alterações nesta entrada entrem em vigor. Além disso, ainda será necessário que o pipe nomeado tiver uma DACL NULL.

No Windows NT 3.51 e posterior, por solicitação do cliente, é mais necessário reinicializar. Depois que um pipe nomeado é adicionado à chave acima, conexões de sessão nulo para desse pipe imediatamente estarão acessíveis.

Essa nova funcionalidade permite que os programas permitir acesso de sessão nula para pipes nomeados que não têm nomes conhecidos antes a inicialização do sistema.

Mais Informações

Normalmente, quando uma sessão é estabelecida entre um computador fornecendo um recurso (servidor) e um computador que deseja usar o recurso (cliente), o cliente é identificado e credenciais são verificadas. Quando uma sessão de NULL é usada, não há nenhuma validação do cliente; todos tem permissão de acesso.

Se você permitir que um pipe a ser usado por uma sessão nulo, você deve:

  • Verifique se os dados fornecidos pelo pipe são realmente públicos.

    - ou -
  • Use um método alternativo para verificar clientes.

Referências

O "entradas de registro do Windows NT" na Ajuda do arquivo no Windows NT versão 3.5 Resource Kit.

A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Palavras-chave: 
kbmt kbacl kbapi kbkernbase kbprb kbsecurity kbservice KB126645 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 126645  (http://support.microsoft.com/kb/126645/en-us/ )