我已阅读了几乎每一个 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=ntlm
,sec=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 解决了这个问题。希望这对某些人有帮助!