在 Ubuntu 13.10 中尝试使用 sec=ntlm 和 sec=ntlmv2 进行 CIFS 安装失败

在 Ubuntu 13.10 中尝试使用 sec=ntlm 和 sec=ntlmv2 进行 CIFS 安装失败

我已阅读了几乎每一个 cifs 安装问题,但遗憾的是无法安装 cifs 共享。

我使用的命令在 redhat 机器上运行,但在 Ubuntu 13.10(内核 3.11.0-15-generic)上运行不上

我使用的命令是

sudo mount -t cifs //server01.mycompany.com/archive$/StructuralBiology/RAW-Data /home/rawdata2 -o user=hari.lastname,rw,soft,nosuid,uid=1000,gid=1000

我已尝试过sec=ntlmsec=ntlmv2但仍然不起作用。

cifs 命令失败并显示:

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

dmesg 中有一条消息:

[169895.357046] CIFS VFS: cifs_mount failed w/return code = -13
[170370.733123] CIFS VFS: cifs_read_super: get root inode failed

我花了好几天的时间试图找到答案,但却无济于事:如能得到任何帮助或指点,我将不胜感激。

答案1

我在各种网络上都遇到过这个问题,需要来自 Ubuntu 或基于 LinuxMint 的文件服务器的 samba 文件共享服务。

每一个 在这种情况下,虽然用户的 samba 帐户有密码并允许通过文件管理器浏览(和操作文件)共享,但 fstab 挂载不起作用。

无论是否设置了 sec=ntlm 或 sec=ntlmv2 或 sec=ntlmssp 或通常作为“解决方案”提供的任何其他选项(例如设置 file_mode 或 user 或 gid)

每一个如果我们的安装解决方案最终是相同的:重置 samba 用户的密码并且无论设置选项如何,安装都可以正常工作!

我不确定当密码从用户的 Linux 帐户“继承/转换”时会发生什么,但尽管能够浏览(而不是挂载)samba 共享,但那里似乎存在一个重大问题。

我现在要将这个回复交叉发布到几个类似的 AskUbuntu 帖子中,这些帖子宣传的是相同的“答案”,但这些答案往往似乎对那些有问题的人没有帮助。

也许这种方法能帮助您解决 fstab samba 安装难题。希望如此,祝您好运。

答案2

因此看起来 Ubuntu 13.10 中的 Linux 内核对于 mount.cifs 程序可能有不同的默认值。

我正在阅读 cifs 文档,其中有以下内容:

vers=
           SMB protocol version. Allowed values are:

           ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.

           ·   2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and
               Windows Server 2008. Note that the initial release version of Windows Vista spoke a slightly different
               dialect (2.000) that is not supported.

           ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.

           ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.

因此我假设 archive$ 是基于 Microsoft Windows 7 和 Windows Server 2008R2 的服务器。

因此,我最终得到此命令(添加了 vers=2.1 的旧命令)来挂载共享

alias mountr2='sudo mount -t cifs //server01.mycompany.com/archive$/StructuralBiology/RAW-Data /home/rawdata2 -o user=hari.lastname,rw,soft,nosuid,uid=1000,gid=1000,vers=2.1

然后共享就和以前一样被挂载了,并且具有完全的读写权限。遗憾的是我花了很长时间(两个多月)才弄清楚。

希望 cifs 模块和 mount.cifs 程序可以输出更多有用且有意义的错误消息,以免让这个过程变成一个黑匣子。

答案3

我最近就遇到了这个问题。你的问题是你无法挂载 smb/cifs 共享的子文件夹——你只能挂载共享本身(即不要尝试挂载“//server/share/dir-1/dir-2/dir-3”,而是挂载“//server/share”)。试试...

sudo mount -t cifs //server01.mycompany.com/archive$ /home/rawdata2 -o user=hari.lastname,rw,soft,nosuid,uid=1000,gid=1000

...然后通过“/home/rawdata2/StructuralBiology/RAW-Data”访问所需目录

如果您确实希望“RAW-Data”目录可作为“/home/rawdata2”使用,那么您可以将共享安装到偏僻的位置并使用如下符号链接...

sudo mount -t cifs //server01.mycompany.com/archive$ /home/.hidden-mount -o user=hari.lastname,rw,soft,nosuid,uid=1000,gid=1000

ln -s /home/.hidden-mount/StructuralBiology/RAW-Data /home/rawdata2

答案4

我知道这并不完全属于您的问题,但我只想为使用 KRB5 安装方法并看到以下内容的人添加一条注释:

mount error(13): Permission denied

我在 Debian 8.10 内核 3.16 上遇到了一个问题,其中 KRB5 + SMB1.0 是唯一有效的组合。

使用 vers={2.0, 2.1, 3.0} 进行挂载会导致权限被拒绝,但这在其他(较新的)Linux 主机上运行正常。

升级到内核 4.10 解决了这个问题。希望这对某些人有帮助!

相关内容