web-dev-qa-db-ja.com

mount.cifsは、smbclientが使用するのと同じ認証情報ファイルを使用できない

NetApp CIFS共有をいずれかのサーバーにマウントしようとしていますが、 "Permission Denied"がstderrに出力され、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...]

資格情報ファイルにはドメイン名も指定されているため、特に、一方が他方で機能するように見えます。

10
Bratchley

詳細は不明ですが、確かに言うことはできませんが、古いプロトコルバージョンを実行していた古いWindowsサーバーに接続すると、この問題が発生しました。 CIFSはSMBの「方言」(タイプ)と見なされることを忘れないでください。他のタイプがあり、古いセットアップではCIFSを使用しません。

基本的には、2人が話していると言っているようなものです。 1人のスペイン語と1人の英語、そしてあなたが英語を話す人にスペイン語を明確に理解させないように強制しようとするあなた。

SMBclientは、セキュリティネゴシエーションに別の方言を使用します。 (または少なくとも別の方法で検出します)。

試す

mount -t cifs // path/thing// mount/point -o username = user、password = pass、sec = ntlm

何が起こるか見てください。 (sec = ntlmは重要な部分です)

7
coteyr

コマンドをいじって、考えられる理由を見つけました:

Smbclientのmanページから:

   -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のmanページから:

   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はライチョウを引き起こしませんでした。

4
user55518

Sec = ntlmを追加すると、問題が修正されました。古いNAS(netgear stora)です。最近のカーネルのCIFSのデフォルトセキュリティはntlmsspです。

2
Ed Hourigan

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

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

2
fiskfisk

User55518が説明したように、クレデンシャルファイルが表示されない場合でも、クレデンシャルファイルにスペースが含まれている可能性があります。 Windowsで認証情報ファイルを編集した場合は、おそらく\r行の最後に置くと、エラー13がスローされます。

1
Cyrlop

私はしばらくこれに苦労しています。

次のエラーが発生しました:

mount error(112): Host is down

ここでvers = 1.0オプションを設定するのに役立ち、それが報告されました

mount error(13): Permission denied

資格情報ファイルに余分な "文字が含まれていることがわかりました

もともと私が持っていた場所:

# cat /etc/samba/cred-file
username="john"
password="secret"

どこにあるべきか

# cat /etc/samba/cred-file
username=john
password=secret

私の場合、オプションvers=3.0を追加するだけで済みました(CIFSはバージョン1であり、カーネル4.13以降はサポートされなくなったため、サーバーでSMBv3に切り替えました)。それでも、再起動する必要がありました。これが/etc/fstabの私のマウント行です:

auto,rw,credentials=/usr/local/etc/smb.credentials,vers=3.0,file_mode=0664,dir_mode=0775,uid=myuser,gid=users

私の資格情報ファイル:

username=myuser
password=****
domain=mydomain

実際には、domainは必要ありませんが、mount.cifsのマニュアルページで使用する正しいオプションです。

0
Gregor

みんなに感謝したい!!!この問題については、それは本当に私を助けてくれます!また、パラメーター "sec = ntlm"に関するいくつかの重要な情報を見つけました。

Microsoft NTLM

私はWindows 7デスクトップから共有ディレクトリをマウントしようとしていましたが、パラメーター "sec = ntlm"を追加するまで不可能であり、それは機能し、いくつかの重要な詳細は、私のWindows 7デスクトップがドメインなので、私が考慮すべき最も重要な詳細だったと思います。したがって、それは機能します!、本当にあなたに感謝します!そしていい感じ! :D

0
DarkPenguin15