Samba 挂载未遵循符号链接

Samba 挂载未遵循符号链接

我正在运行两台服务器,希望在一台服务器上挂载另一台服务器上的目录。出于各种原因,我希望使用 Samba (smbfs) 而不是 NFS。

ServerA 在 fstab 中使用以下命令挂载 ServerB:

//ServerB/sambashare /mount/point smbfs username=blah,password=blah,ro

这有效,我可以在 /mount/point 中看到 sambashare 的内容。但是,在服务器 A 上,该目录中指向 /tmp/blah 的符号链接无法正确解析。如果我尝试进入该目录,它会显示“权限被拒绝”。

ServerB 上的 Samba 服务器具有以下全局设置:

follow symlinks = yes
wide links = yes

有没有人能解释为什么这个方法不起作用?链接在 ServerB 上本地正确解析。

(为了保护无辜者,服务器、共享等的名称已被更改。)

答案1

smbfs 是旧内核 smb 实现,不再受支持。它已被 cifs 内核模块取代。因此,请尝试使用 cifs 类型(而不是 smbfs)来安装它。

另外,请确保您的 smb.conf 中没有“Unix Extensions = No”,因为这也会禁用内核模块跟踪符号链接的能力。此值默认为是,因此如果您的 smb.conf 中没有该值,您应该在此处完成所有设置。

您可能还希望将您的凭据存储在更安全的地方,因为任何人都可以读取 /etc/fstab。

为此,请以 root 身份执行以下操作。

cd /etc/samba/
echo 用户名=mywindows用户名 > .smbpasswd
echo 密码=mywindowspassword >> .smbpasswd
chmod 600 .smbpasswd

在命令中替换您的 Windows 用户名和密码。除 root 之外,其他任何人都无法读取此文件的内容。

然后修改 /etc/fstab 文件中的行,使其如下所示:

//服务器名称/共享名称/挂载目录 cifs 凭据=/etc/samba/.smbpasswd 0 0

相关内容