mount.cifs は smbclient が使用するのと同じ資格情報ファイルを使用できません。

mount.cifs は smbclient が使用するのと同じ資格情報ファイルを使用できません。

NetApp CIFS共有を私たちのサーバーの1つにマウントしようとしていNT_STATUS_WRONG_PASSWORDます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

ただし、同じ資格情報ファイルを使用すると、smbclientコマンドは正常に機能します。

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...]

一方がうまくいけば、もう一方もうまくいくはずです。特に、資格情報ファイルもドメイン名を指定するため、さらにそうです。

答え1

追加情報がなければ、確かに言うことはできませんが、以前のバージョンのプロトコルを実行している古いWindowsサーバーに接続したときにこの問題を見たことがあります。 CIFS は SMB の「方言」(タイプ)と見なされます。他のタイプもあり、以前の設定ではCIFSを使用しません。

基本的に二人が話しているのと同じです。スペイン語の1つと英語の1つ、英語のユーザーにスペイン語を理解するように強制しようとしていますが、彼は確かに理解していません。

SMBクライアントは、セキュリティネゴシエーションに別の方言を使用します。 (または少なくとも違いを検出してください)。

努力する

mount -t cifs //パス/モノ/ /mount/point -oユーザー名=ユーザー、パスワード=pass、秒=ntlm

何が起こっているのか確認してください。 (sec = ntlmが重要な部分です)

答え2

コマンドを使用して考えられる原因を見つけました。

smbclientのマニュアルページから:

   -A|--authentication-file=filename
       This option allows you to specify a file from which to read the
       username and password used in the connection. The format of the file is

           username = <value>
           password = <value>
           domain   = <value>

       Make certain that the permissions on the file restrict access from
       unwanted users.

mount.cifsのマニュアルページから:

   credentials=filename
       specifies a file that contains a username and/or password and
       optionally the name of the workgroup. The format of the file is:

          username=value
          password=value
          domain=value

次に、2 つの資格情報ファイルを生成しました。 1つは最初のスニペットに示されているように空白があり、もう1つは空白がなく、名前をすべてcredscreds.spacy

大きな対決:

ファイルの場合creds

mount.cifs -vvv //host/path /local/path -o credentials=/path/creds

良い沈黙、間違いはありません。

ファイルの場合creds.spacy

# mount.cifs -vvv //host/path /local/path -o credentials=/path/creds.spacy
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

明らかに、資格情報ファイルには mount.cifs が理解できないスペースが含まれています。

また、smbclient空白があっても構いません。苦情を申し立てませんcredsでした。creds.spacy

答え3

今日共有をマウントしようとしたときに見つけたもう1つの可能性は、ドメインのユーザーに資格情報をsmbmount提供するのをサポートする構文です。username=DOMAIN\\user

mount.cifs(およびmount -t cifs)が機能するには、次の2つを別々に提供する必要があります-o username=user,password=pass,dom=DOMAIN

答え4

user55518が説明したように、資格情報ファイルには表示されない場合でも空白がある可能性があります。 Windowsで資格情報ファイルを編集した場合は、\r行末で編集され、エラー13が発生する可能性があります。

関連情報