挂载cifs共享时如何调试NT_STATUS_INVALID_PARAMETER?

挂载cifs共享时如何调试NT_STATUS_INVALID_PARAMETER?

挂载由一台主机(hostx)导出的 cifs 共享工作正常:

[piotr@demon ~]$ sudo mount -t cifs //hostx.intranet.local/pdobrogost /home/piotr/remote/hostx/ --verbose -o credentials=/home/piotr/.config/cifs-credentials.conf,uid=piotr,gid=piotr
domain=domainx
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\hostx.intranet.local\pdobrogost,uid=1000,gid=1000,user=pdobrogost,,domain=domainx,pass=********

这对于另一台主机(hosty)导出的 cifs 共享不起作用:

[piotr@demon ~]$ sudo mount -t cifs //hosty.intranet.local/pdobrogost /home/piotr/remote/hosty/ --verbose -o credentials=/home/piotr/.config/cifs-credentials.conf,uid=piotr,gid=piotr
domain=domainx
mount.cifs kernel mount options: ip=1.2.3.5,unc=\\hosty.intranet.local\pdobrogost,uid=1000,gid=1000,user=pdobrogost,,domain=domainx,pass=********
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

/home/piotr/.config/cifs-credentials.conf看起来像这样:

username=my_cifs_username
password=my_cifs_password
domain=domainx

我尝试使用主机连接到 cifs 共享smbclient并得到以下信息:

[piotr@demon ~]$ smbclient -d 3 -A /home/piotr/.config/cifs-credentials.conf -W domainx //hosty.intranet.local/pdobrogost
lp_load_ex: refreshing parameters
Initialising global parameters
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf"
Processing section "[global]"
added interface p1p1 ip=10.92.2.80 bcast=10.92.2.255 netmask=255.255.255.0
Client started (version 4.1.6).
tdb(/var/lib/samba/gencache.tdb): tdb_open_ex: could not open file /var/lib/samba/gencache.tdb: Permission denied
resolve_lmhosts: Attempting lmhosts lookup for name hosty.intranet.local<0x20>
resolve_lmhosts: Attempting lmhosts lookup for name hosty.intranet.local<0x20>
resolve_wins: WINS server resolution selected and no WINS servers listed.
resolve_hosts: Attempting host lookup for name hosty.intranet.local<0x20>
Connecting to 1.2.3.5 at port 445
Doing spnego session setup (blob length=97)
got OID=1.2.840.113554.1.2.2
got OID=1.2.840.48018.1.2.2
got OID=1.3.6.1.4.1.311.2.2.10
got principal=cifs/[email protected]
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
SPNEGO login failed: Unexpected information received
session setup failed: NT_STATUS_INVALID_PARAMETER

本地系统运行 Fedora 20
mount.cifs 版本:6.3
smbclient 版本:4.1.6
hostx 在 hostx 上运行 Debian 6.0.10
Samba 版本:2:3.5.6~dfsg-3squeeze11
hosty 在 hosty 上运行 Red Hat Enterprise Linux ES 版本 4
Samba 版本:桑巴-3.0.33-0.19.el4_8.3

在 hosty 上的 samba 日志中有以下条目:

Nov 14 15:09:37 hosty smbd[28956]: [2014/11/14 15:09:37, 0] rpc_client/cli_pipe.c:cli_pipe_verify_schannel(354)
Nov 14 15:09:37 hosty smbd[28956]:   cli_pipe_verify_schannel: auth_len 56.
Nov 14 15:09:37 hosty smbd[28956]: [2014/11/14 15:09:37, 0] auth/auth_domain.c:domain_client_validate(260)
Nov 14 15:09:37 hosty smbd[28956]:   domain_client_validate: unable to validate password for user pdobrogost in domain domainx to Domain controller A.INTRANET.LOCAL. Error was NT_STATUS_INVALID_PARAMETER.

这表明问题在于 Active Directory 域控制器授权我的密码。

答案1

您还可以在 hostx 上运行 smbclient 并分享结果吗?如果它有效,您应该比较两个主机的 smb conf 文件(从您的结果来看,它似乎是文件:/etc/samba/smb.conf)。您是否检查过您的服务器上是否配置了 SPNEGO?如果不是这种情况,您应该通过在 hosty 的 smb.conf 设置中添加以下内容来禁用它:

[全球的]

客户端使用 spnego = 否

相关内容