Estou tentando montar um compartilhamento CIFS da NetApp em um de nossos servidores e continuo recebendo "Permissão negada" impressa em stderr e NT_STATUS_WRONG_PASSWORD
impressa em execução dmesg
.
root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
root@xxxehpvld05 ~ $ dmesg | tail
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
O smbclient
comando, no entanto, funciona sem problemas, usando o mesmo arquivo de credenciais exato:
root@xxxehpvld05 ~ $ smbclient -L //zhp-nas.xxx.com/perspectives -A /etc/cifs.creds
Domain=[XXX] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
IPC$ IPC Remote IPC
ZHPSubmit-dev Disk
[...snip...]
Parece que, se um funciona, o outro também deveria, especialmente porque o arquivo de credenciais também especifica o nome do domínio.
cifs-utils
pacote (Debian) e ele resolveu o problema. Passei um pouco depurando isso porque não esperava nenhum suporte sem o pacote ter sido instalado, por isso presumi que sim. Eu estava esperando algo como "sistema de arquivos desconhecido" do mount, mas isso não aconteceu.Respostas:
Sem mais informações, não posso ter certeza, mas vi esse problema ao conectar-me a um servidor Windows mais antigo que executava uma versão de protocolo mais antiga. Lembre-se de que o CIFS é considerado um "dialeto" (tipo) de SMB. Existem outros tipos e as configurações mais antigas não usam o CIFS.
Basicamente, é como dizer que duas pessoas estão falando. Um espanhol e um inglês, e você está tentando forçar o falante de inglês a entender o espanhol quando claramente ele não entende.
O SMBclient usa um dielect diferente para negociações de segurança. (ou pelo menos detecta de forma diferente).
Experimentar
e veja o que acontece. (sec = ntlm é a parte importante)
fonte
ntlm
ountlmv2
. Não tenho certeza de como solucioná-lo. Se você precisar de mais informações, avise-me e atualizarei a pergunta. Poderia haver alguns controles de acesso no lado da NetApp que o funcionário da SAN perdeu?Brincando com os comandos, encontrei um possível motivo:
Na página de manual do smbclient:
Na página de manual do mount.cifs:
Em seguida, criei dois arquivos de credenciais, um com espaços, conforme mostrado no primeiro trecho e outro sem e os nomeei
creds
ecreds.spacy
.O grande confronto:
Com o
creds
arquivo:bom silêncio, sem erros.
Com o
creds.spacy
arquivo:Portanto, obviamente, seu arquivo de credenciais contém espaços que não são entendidos pelo mount.cifs.
Além disso
smbclient
, não importa se há espaços.creds
ecreds.spacy
não causou nenhum galo silvestre.fonte
smbclient
mas falhamount.cifs
. Depois de alterar a ordem para a correta, conforme especificado na documentação que você citou aqui, ele começou a funcionar. Parece que estes (tanto o manuseio inadequado de espaços quanto a questão de pedidos) são erros terríveis que devem ser facilmente corrigidos por quem o mantémmount.cifs
.A adição de sec = ntlm corrigiu o problema para mim. Eu tenho um NAS mais antigo (netgear stora). A segurança padrão para cifs nos kernels recentes é ntlmssp
fonte
Outra possibilidade que descobri ao tentar montar um compartilhamento hoje é que
smbmount
suporta ausername=DOMAIN\\user
sintaxe para fornecer um usuário em um domínio como credencial.Para
mount.cifs
(emount -t cifs
) ao trabalho, estes dois têm de ser fornecidos separadamente:-o username=user,password=pass,dom=DOMAIN
.fonte
sec=ntlm
edom=DOMAIN
Como o usuário55518 explicou, você provavelmente tem espaços no arquivo de credenciais, mesmo que não os veja. Se você editou seu arquivo de credenciais no Windows, provavelmente possui
\r
no final de suas linhas e isso gera o erro 13.fonte
Quero agradecer a todos vocês !!! para esta questão, ele realmente me ajudou muito !, também encontrei algumas informações importantes sobre o parâmetro "sec = ntlm", então deixo o link se alguns de vocês forem interessantes sobre isso, linhas abaixo:
Microsoft NTLM
Eu estava tentando montar um diretório de compartilhamento a partir da área de trabalho do Windows 7, mas era impossível adicionar o parâmetro "sec = ntlm" e ele funciona, e alguns detalhes importantes podem ser que eu não considerei que minha área de trabalho do Windows 7 estava em um domínio, então acho que foi o detalhe mais importante que devo considerar. portanto, funciona !, realmente agradeço muito a todos vocês !, bênçãos !! e boas vibrações! : D
fonte
No meu caso, eu só precisava adicionar a opção
vers=3.0
(o CIFS era a versão 1, que não é mais suportada desde o kernel 4.13, então mudei para o SMBv3 no servidor) e ainda precisava reiniciar para fazê-lo funcionar. Esse é o meu monte a linha/etc/fstab
agora:Meu arquivo de credenciais:
Na verdade,
domain
não é necessário, mas é a opção correta para usar de acordo com a página de manual mount.cifs agora.fonte
Eu tenho lutado com isso por um tempo.
Com os seguintes erros:
aqui ajudou a definir a opção vers = 1.0, então relatou
e acabou sendo "caracteres extras" no meu arquivo de credenciais
onde originalmente eu tinha:
onde deveria estar
fonte