erro de montagem 13 = permissão negada

44

Um dos meus servidores está configurado para montar automaticamente um diretório do Windows usando o fstab. No entanto, após a minha última reinicialização, ele parou de funcionar. A linha no fstab é:

//myserver/myfolder /mnt/backup cifs credentials=home/myfolder/.Smbcredentials

O .Smbcredentialsarquivo é:

username=myaccount
password=mypassword
domain=mydomain

Eu faço mount -ae recebo mount error 13 = Permission denied. Se eu fizer isso o suficiente, bloqueará minha conta do Windows, então sei que está tentando. Verifiquei se minha senha está correta.

O que estou fazendo errado?

Salmoura
fonte
4
Você pode tentar montar a partir da linha de comando mount -t cifs //myserver/myfolder /mnt/backup --verbose -o credentials=home/myfolder/.Smbcredentialse adicionar as informações de depuração (higienizadas) à sua pergunta?
BSD
Qual é a distribuição e a versão do cifs-utilsque você instalou? Eu já tive esse problema antes e acredito que foi devido a uma atualização.
Slm

Respostas:

44

Algumas coisas para conferir. Faço algo semelhante e você pode testá-lo diretamente usando o mountcomando para garantir que as coisas estejam corretas.

Permissões no arquivo de credenciais

Verifique se este arquivo está com permissão correta.

$ sudo ls -l /etc/smb_credentials.txt 
-rw-------. 1 root root 54 Mar 24 13:19 /etc/smb_credentials.txt

Montagem detalhada

Você pode obter mais informações mountusando o -vcomutador, que muitas vezes mostra onde as coisas estão dando errado.

$ sudo mount -v -t cifs //server/share /mnt \
    -o credentials=/etc/smb_credentials.txt

Resultando nesta saída se funcionar:

mount.cifs kernel mount options: ip=192.168.1.14,unc=\\server\share,credentials=/etc/smb_credentials.txt,ver=1,user=someuser,domain=somedom,pass=********

Verifique os logs

Após executar o comando mount acima, verifique dentro de seus arquivos dmesge /var/log/messagesou /var/log/syslogquaisquer mensagens de erro que possam ter sido geradas quando você tentou o mount.

Tipo de segurança

Você pode passar muitas opções extras através do -o ..switch para montar. Essas opções são específicas da tecnologia, portanto, no seu caso, são aplicáveis mount.cifsespecificamente. Dê uma olhada na mount.cifspágina de manual para obter mais informações sobre todas as opções que você pode passar.

Eu suspeito que você está perdendo uma opção para sec=.... Especificamente uma dessas opções:

   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

       The default in mainline kernel versions prior to v3.8 was sec=ntlm. 
       In v3.8, the default was changed to sec=ntlmssp.

Pode ser necessário ajustar a sec=...opção para que seja sec=ntlmou sec=ntlmssp.

Referências

slm
fonte
1
A verificação dmesgfoi muito útil. Esta resposta foi de 2014 e, desde então, a exploração do SMB1.0 do WannaCry a tornou obsoleta. Portanto, adicione vers=2.0ou 2.1 ou 3.0, o que o servidor suportar, pois o padrão 1.0 não será mais suportado.
Michael Plautz
1
Apenas um alerta: como a pasta de destino está no Windows, que geralmente exige a alteração da senha de vez em quando, a senha no arquivo de credenciais pode ser inválida. mountO comando não informará esses detalhes.
HongboZhu 10/09
22

Obrigado, mas um pouco mais de pesquisa apareceu a solução. Ele estava usando o tipo de segurança errado por padrão; este comando funcionou:

$ sudo mount -t cifs //172.16.1.5/myshare/ /mnt/myshare \
    -osec=ntlmv2,domain=MYDOMAIN,username=myusername,password=mypassword
Salmoura
fonte
Era isso! A execução mount -t cifs //10.0.0.138/usb1_1 /mnt/usbdisk -ousername=theusername,password=thepassord,file_mode=0644,dir_mode=0755,uid=rootem uma máquina Fedora 25 funcionou bem, mas falhou quando executei exatamente o mesmo comando em uma caixa de openwrt (Chaos Calmer 15.05.1). A adição sec=ntlmv2fez com que funcionasse lá também.
hlovdal
2
Vim aqui tentar montar um membro do AD Debian 9 de um não-membro do CentOS 6, e isso me chegou perto - para o meu caso a magia erasec=ntlmssp
Cheetah
A solução para mim foi usar a domainpalavra - chave e especificá-la além do nome de usuário.
Jim Fell
sec = ntlmv2 tem a opção que eu apenas precisava para acessar meu smb do Ubuntu 18.04 para compartilhar o Windows 10. Obrigado, Pickle.
noel aye
12

Corri para esse problema e o problema acabou por não formatar os valores no meu arquivo de credenciais corretamente. Eu tentei:

username=DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Eu também tentei:

[email protected]
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

E:

username=FULLY.QUALIFIED.DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Depois de usar apenas meu nome de usuário de login:

username=mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Consegui que minha montagem CIFs fosse bem-sucedida.

Mark Salisbury
fonte
ótima explicação!
Dima Lituiev 21/07
2

Esta adição funciona no Linux científico 6.6 (RedHat 6.6)

edite /etc/fstab
create file = .credentials(por exemplo, in /etc) com estes detalhes:

username=value
password=value
domain=value

//SERVER/SHARE1 /mnt/SHARE1 cifs credentials=/etc/.credentials,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 
stoferontheweb
fonte
sinalizadores file_mode e dir_mode resolvidos para mim! :)
Rafael Moni