同じではないエマルジョン、smbclientにも接続できません。
Samba共有はWindowsでは自動的にうまく機能しますが、Linuxではまったくマウントできず、エラーメッセージはせいぜい秘密です。これは私のsamba.confです。
[global]
dos charset = CP437
netbios name = REDACTED
server string = Lab
server role = standalone server
map to guest = Bad User
obey pam restrictions = Yes
smb passwd file = /var/etc/private/smbpasswd
private dir = /var/etc/private
max log size = 51200
server min protocol = SMB2
time server = Yes
deadtime = 15
max open files = 11070
hostname lookups = Yes
load printers = No
printcap name = /dev/null
disable spoolss = Yes
dns proxy = No
pid directory = /var/run/samba
panic action = /usr/local/libexec/samba/samba-backtrace
idmap config * : backend = tdb
acl allow execute always = Yes
create mask = 0666
directory mask = 0777
directory name cache size = 0
kernel change notify = No
map archive = No
map readonly = no
store dos attributes = Yes
strict locking = No
[common]
comment = Lab Common share
path = /mnt/pool/common
read only = No
inherit acls = Yes
hosts allow = XXX.XXX.XX.X/24, XXX.XX.XX.X/24 <-- redacted
hide dot files = No
veto files = /.snap/.windows/.zfs/
vfs objects = zfsacl, streams_xattr, aio_pthread
zfsacl:acesort = dontcare
nfs4:chown = yes
nfs4:acedup = merge
nfs4:mode = special
recycle:subdir_mode = 0700
recycle:directory_mode = 0777
recycle:touch = yes
recycle:versions = yes
recycle:keeptree = yes
recycle:repository = .recycle/%U
エラーメッセージは次のとおりです。
[as@localhost ~]$ sudo mount -t cifs -o username=removed,password=removed //server.ip.address/common /media/windowsshare/
mount error(95): Operation not supported
完全に役に立たないメッセージです。
デバッグが有効なdmesg:
[237179.795551] fs/cifs/cifsfs.c: Devname: //132.239.27.172/common flags: 0
[237179.795563] fs/cifs/connect.c: Username: lauria
[237179.795565] fs/cifs/connect.c: file mode: 0x1ed dir mode: 0x1ed
[237179.795600] fs/cifs/connect.c: CIFS VFS: in cifs_mount as Xid: 44 with uid: 0
[237179.795600] fs/cifs/connect.c: UNC: \\132.239.27.172\common
[237179.795605] fs/cifs/connect.c: Socket created
[237179.795606] fs/cifs/connect.c: sndbuf 16384 rcvbuf 87380 rcvtimeo 0x1b58
[237179.795897] fs/cifs/fscache.c: cifs_fscache_get_client_cookie: (0xffff8803e0aa4800/0xffff880035d25580)
[237179.795898] fs/cifs/connect.c: Demultiplex PID: 25817
[237179.795902] fs/cifs/connect.c: CIFS VFS: in cifs_get_smb_ses as Xid: 45 with uid: 0
[237179.795903] fs/cifs/connect.c: Existing smb sess not found
[237179.795907] fs/cifs/cifssmb.c: Requesting extended security.
[237179.795910] fs/cifs/transport.c: For smb_command 114
[237179.795912] fs/cifs/transport.c: Sending smb: smb_len=78
[237179.801062] fs/cifs/connect.c: RFC1002 header 0x25
[237179.801067] fs/cifs/misc.c: checkSMB Length: 0x29, smb_buf_length: 0x25
[237179.801090] fs/cifs/transport.c: cifs_sync_mid_result: cmd=114 mid=1 state=4
[237179.801093] fs/cifs/cifssmb.c: Dialect: 65535
[237179.801094] fs/cifs/cifssmb.c: negprot rc -95
[237179.801097] fs/cifs/connect.c: CIFS VFS: leaving cifs_get_smb_ses (xid = 45) rc = -95
[237179.801100] fs/cifs/fscache.c: cifs_fscache_release_client_cookie: (0xffff8803e0aa4800/0xffff880035d25580)
[237179.801262] fs/cifs/connect.c: CIFS VFS: leaving cifs_mount (xid = 44) rc = -95
[237179.801263] CIFS VFS: cifs_mount failed w/return code = -95
さまざまな-sec
オプションを試しましたが、すべて失敗し、すべて同じエラーメッセージが表示されました。 smbclientも役に立ちません:
smbclient //132.239.27.172/common -U username%password
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
これはWindowsではどのように機能しますが、Linuxでは機能しませんか?
答え1
@Kenと@Paulの答えを書く:v1以降では、SMBのバージョンを指定する必要があります。
mount -t cifs \
-o username=USERNAME,vers=3.0 \
//server/share \
/mnt/point
Linux cifsカーネルクライアントは2.5.42以降カーネルに含まれています。 cifsプロトコル(および関連する初期SMB方言)はデフォルトプロトコル(「vers = 1.0」)ですが、「vers = 2.0」を指定して最新の方言(SMB2.02、SMB2.1、SMB3、およびSMB3.02)に選択できます。 。 )インストール時に「vers = 2.1」または「vers = 3.0」または「vers = 3.02」をサポートします。 -https://wiki.samba.org/index.php/LinuxCIFSKernel
smbclientの場合、真言は次のとおりです-m, --max-protocol=LEVEL
。
smbclient -L server -U username -m SMB2
smbclient 許可レベルのリストが見つかりませんでした。マーク・ミューフェルトによるとこのスレッドWindowsで使用されるバージョンは次のとおりです。
- Vista/2008で導入されたSMB 2.0
- Win7/2008R2用SMB 2.1
- Win8/2012用SMB 2.2(3.0とも呼ばれる)
- 中小企業3.02 8.1/2012R2
mount
一致しないプロトコルレベルを追跡するためのいくつかのエラーメッセージがあります。完全ではないリスト(回答を自由に編集して追加することができます):
mount error(13): Permission denied
mount error(95): Operation not supported
mount error(121): Remote I/O error
最後に、このオプションを使用するように頻繁に引用されるアドバイスに似sec=ntlmv2
たアドバイスをもはや従うべきではないという意見を見たことがあります。したがって、少なくとも混ぜて使用しないことをお勧めしsec
ますvers
。
答え2
さて、「私」が見つけました。何らかの理由で「vers = 3.0」を追加すると成功しました。これがなければ、なぜ問題が発生するのか、なぜ動作するのかわかりません。ただし、後で他の人のフリーナス設定でこの問題が発生する場合に備えてください。
答え3
私は1ヶ月以上この問題で苦労しています。クライアントがXenserver 6.2および6.5の場合、CIFSを介してISOディレクトリをマウントできません。
vers=3.0 がようやく成功しました。
このオプションをどこで見つけましたか? ?
私のドメインはWindows 2012 R2です。レジストリの認証要件を下げませんでした。それでもすべてデフォルトです(この機能が見つかったときにアクティブにしようとしました)。
sec=設定をまったく指定する必要はありません。
ドメインを指定する必要があります。ドメインを大文字で指定しましたが、必要はないようです。
私のコマンドは次のとおりです。
mount -t cifs "//192.168.92.25/shared" -o username=administrator,password=<your_password>,domain=<YOUR DOMAIN IN CAPS>,vers=3\.0 /root/tmp
次に、認証にオプションを追加する方法を学びます。
誰もがポールに感謝します。
答え4
私が見つけたのは削除しvers=3.0
て使用することですsec=ntlmv2
。これは「@matt wilkie」が言った内容を再確認します。
だから私の行は次のようになります/etc/fstab
//<server>/<share> /mnt/point cifs sec=ntlmv2,iocharset=utf8,credential=/.smbcredentials 0 0