cifs, smb - Não é possível montar (permissão negada) ou navegar na pasta compartilhada

12

Recentemente, esbarrei neste problema. Normalmente eu navego através de uma pasta compartilhada de rede local a partir de uma máquina Linux via smb (ou seja, do gerenciador de arquivos usando smb:). Agora, sempre que tento acessar o atalho ou digitar a credencial novamente, continuo recebendo a janela de diálogo solicitando usuário, domínio e senha.

Então, tentei montar o local manualmente usando cisf-utils, fazendo:

sudo mount -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/used_shared/ -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Eu entendo mount error(13): Permission denied.

Definitivamente, tenho certeza de que meu usuário tem permissão para essa pasta, pois posso acessá-la em uma máquina Windows.

Além disso, se eu tentar montar minha pasta pessoal nesse local através de:

sudo mount -t cifs //fileshare1/docs5/francesco.azzarello/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Eu posso acessá-lo sem nenhum problema.

Para referência, estou usando o kernel 4.2.0-36-generic e minha versão mount.cifs é 6.4

Alguma idéia de como fazer um dos dois métodos funcionar?


Atualizar Rgarding ponsfrilus answer

número 1: opção detalhada retorna:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,uid=1000,gid=1000,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

O número 2 é basicamente a mesma coisa:

_ mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

E nada mudou com vers = 2.1:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Quanto ao número 4, posso montar o docs1 sem problemas, mas posso navegar até a pasta compartilhada no usuário.

Frankmtl
fonte
Tente a dica # 3 do ponsfrilus com vers=3.0, talvez também vers=2.0ou vers=1.0. Se isso não funcionar, talvez você possa permitir que o servidor conecte uma gama mais ampla de versões smb. Eu mesmo tive esse problema porque o smb3 foi definido no servidor, conforme necessário. Não consegui me conectar ao linux até que o servidor reduzisse a versão necessária do samba para 2. Qual sistema operacional o servidor executa?
Emk2203 16/05
2
Eu tentei todos eles. Ainda recebo a "permissão negada" com 3.0, 2.1 e 2.0. Enquanto eu receber "erro desconhecido" com 1.0. Não sei como verificar a versão do servidor Windows como usuário, pois não tenho acesso direto a ela.
Frankmtl #
Não posso ajudá-lo nisso, desculpe. Eu tinha controle sobre o servidor e meu problema desapareceu após o relaxamento das versões SMB permitidas. Você pode se conectar ao seu próprio compartilhamento - é improvável a configuração incorreta do linux; você pode se conectar via Windows para compartilhar - configuração incorreta do servidor improvável. Isso exige um verdadeiro guru do samba.
Emk2203

Respostas:

10

Tenho certeza de que encontrei exatamente esse mesmo problema hoje no Ubuntu 16.10. Tentei todas as sugestões neste segmento várias vezes, consegui montar exatamente o mesmo compartilhamento usando o Windows Server 2016 e naveguei usando smbclient ( smbclient -U brainstrust //WINBOX01/shared). Eu até tentei um arquivo de credenciais externas.

Acabei tropeçando em uma correção - embora tivesse criado um usuário local para o compartilhamento na caixa do Windows, ele também foi associado a um domínio. Basicamente, definir o domínio como a máquina local -o domain=WINBOX01corrigiu meu problema instantaneamente, deixando um comentário aqui na esperança de que seja útil para alguém por aí.

O comando mínimo completo que usei foi:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
Geoff Williams
fonte
Obrigado por deixar este comentário aqui, isso me ajudou.
dleerob 7/02/19
Também me ajudou. Parece que montagem de CIFS sofre -t do mesmo problema
A terminalidade
Foi isso que acabou sendo o meu problema. Eu já tinha um ~/.smbcredentialsarquivo. Estou horrorizado ao descobrir que meu NAS local me permitiu montar o compartilhamento com uma senha incorreta por um longo tempo.
30719 Charlie
Curiosamente, precisávamos especificar o nome NetBIOS do domínio, não o nome do host do servidor de arquivos. No entanto, ele funciona agora, muito obrigado.
bviktor 14/02
9

Acho que você tem o tipo de segurança errado para o servidor. O erro 13 significa que o servidor não está deixando você entrar.

Você precisará selecionar o modo de segurança correto no seu comando mount e adicionar uma opção sec via -o da seguinte maneira:

sec=
   Security mode. Allowed values are:
   ·   none - attempt to connection as a null user (no name)
   ·   krb5 - Use Kerberos version 5 authentication
   ·   krb5i - Use Kerberos authentication and forcibly enable packet 
       signing
   ·   ntlm - Use NTLM password hashing
   ·   ntlmi - Use NTLM password hashing and force packet signing
   ·   ntlmv2 - Use NTLMv2 password hashing
   ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing
   ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message
   ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message, and force packet signing
Amias
fonte
1
Eu tentei todos eles e eu recebo "permissão negada" ou "erro desconhecido", dependendo do tipo sec
Frankmtl
considerando todos os problemas recentes de segurança do SMB, aconselho apenas usá-lo quando houver muitas medidas de segurança adicionais, como verificação de vírus muito atualizada.
Amias
Tente usar sec = ntlmssp e verifique se a configuração do servidor samba criptografa a senha.
Humpity 29/01
Salvou o meu dia. Na verdade, o que eu fiz foi remover o sec = ntlm e funcionou.
chuckedw 16/03
Você realmente deve se afastar do SMB hoje em dia, é uma fonte quase constante de ataques e escalada de privilégios.
Amias 18/03
4
  1. Tente adicionar a opção "-v" para obter uma saída detalhada:

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o \
       username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
    
  2. Teste com estas opções para o comando mount

    iocharset = utf8, rw, modo de arquivo = 0777, modo de arquivo = 0777 :

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o 
       username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    
  3. Teste especificando a opção da versão SMB (vers = 2.1), consulte o wiki do samba . Na página do manual mount.cifs:

    vers =
    versão do protocolo SMB. Os valores permitidos são:

    • 1.0 - O protocolo CIFS / SMBv1 clássico. Esse é o padrão.

    • 2.0 - O protocolo SMBv2.002. Isso foi introduzido inicialmente no Windows Vista Service Pack 1 e no Windows Server 2008. Observe que a versão inicial do Windows Vista falava um dialeto ligeiramente diferente (2.000) que não é suportado.

    • 2.1 - O protocolo SMBv2.1 que foi introduzido no Microsoft Windows 7 e Windows Server 2008R2.

    • 3.0 - O protocolo SMBv3.0 que foi introduzido no Microsoft Windows 8 e Windows Server 2012.

  4. Por fim, tente montar apenas o primeiro compartilhamento:

    sudo mount -v -t cifs //fileshare1/docs1/ /home/frank/mnt_folder \
       -o username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    

Qualquer saída detalhada que você possa compartilhar pode ajudar.

ponsfrilus
fonte
Obrigado pela resposta. Não encontrei uma maneira melhor de reproduzir além de atualizar a pergunta. você pode encontrar as saídas desses comandos na atualização
Frankmtl
@Frankmtl, você pode comparar os direitos das pastas nos documentos docs1 e docs5 fileshare1?
Ponsfrilus 13/05
Desculpe pelo atraso na resposta. Se você quer dizer as permissões de pasta depois que eu montá-los, ambos têm drwxr-xr-x
Frankmtl
Para acessar um compartilhamento de servidor do Windows 2012 (smb2), você deve adicionar ,vers=2.1 após uid = 1000 (também conhecido como final de linha). Eu instalei também o pacote "cifs-utils".
Laugeo 7/12
2

Adicionar a opção sec=ntlmao comando mount resolveu meu problema.

por exemplo:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
brike
fonte
1

Para esse problema ao usar cifs maiores que 6.0: a nova versão do cifs usa a variável domain, portanto, o arquivo creadentials se parece com:

username=<your username>
password=<your password>
domain=<your domain>
Do Manh Tien
fonte