Passando nome de usuário e senha UNC dentro de um caminho UNC

21

É possível passar o nome de usuário e senha UNC dentro de um caminho UNC?

Semelhante a como o FTP e o SMB suportam isso:

smb://user:[email protected]/share
ftp://user:[email protected]/share

Eu estou tentando obter um acesso de serviço (sem domínio do PC) a um caminho DFS.

Existe outra maneira de contornar isso? Eu poderia ligar o PC ao domínio e executar o serviço como um usuário de domínio, mas e se eu estivesse usando o Linux?

    
por Kvad 10.10.2011 / 02:35

4 respostas

18

No Windows, você não pode colocar credenciais em caminhos UNC. Você deve fornecê-los usando net use , runas /netonly ou quando solicitado pelo Windows. (Se você tiver algumas habilidades de programação, poderá armazenar a senha do SMB como uma "credencial de domínio" usando CredWrite() , o que equivale a marcar a caixa "Lembrar senha" no Windows.)

No Linux, depende do programa.

  • O Gvfs do GNOME aceita a sintaxe user@host , mas parece ignorar completamente a senha. (No entanto, você pode armazená-lo no Chaveiro do GNOME antes).

  • smbclient usa a mesma sintaxe UNC do Windows; no entanto, ele tem uma opção --authentication-file a partir da qual as credenciais podem ser lidas.

  • Ambos os programas acima estão usando libsmbclient , e podem usar a autenticação Kerberos em vez de senhas: execute kinit [email protected] e use smbclient -k //host/share . Isso é mais seguro que a autenticação por senha.

Observe que a colocação de senhas em URIs está obsoleta e você não deve depender do suporte em qualquer lugar .

    
por 10.10.2011 / 13:47
13

Você pode mapear uma "unidade" para o caminho UNC usando net use . Acessos futuros devem compartilhar a conexão existente

Net Use \yourUNC\path /user:uname password

Nota: você não precisa especificar uma letra de unidade

    
por 10.10.2011 / 03:08
1

Acho que o nome de usuário e a senha devem ser passados para o servidor para autenticação antes que qualquer acesso de arquivo possa ser feito, portanto o código que manipula a conexão SMB deve ser capaz de analisar e extrair o nome de usuário e senha do URL. Você terá que verificar se esse código suporta este formato ou não.

Se isso não acontecer, você pode montar esse compartilhamento SMB por meio do SAMBA e direcionar seu programa para usar esse caminho "local". Você pode colocar a montagem em fstab e usar um arquivo de senha do SAMBA para fornecer as credenciais do usuário. Lembre-se de definir as permissões corretas para o arquivo de senha para que os usuários normais não possam lê-lo.

Observe que é uma prática ruim armazenar senhas em texto não criptografado em arquivos de configuração, portanto, mesmo que seu programa possa manipular senhas em URLs, você deve considerar o método de compartilhamento montado.

    
por 10.10.2011 / 02:55
0

Você pode adicionar as credenciais no Painel de Controle / Usuários / Gerenciador de Credenciais do Windows para que as credenciais sejam armazenadas em cache. Você adicionaria o nome do dispositivo (server.domain.local) com o nome de usuário / senha do domínio e, em seguida, deveria ser capaz de acessar o compartilhamento sem fornecer as credenciais novamente.

    
por 12.04.2018 / 22:10