我在 raspi 上运行 Ubuntu Mate (16.04.3),我想通过 SMB 在网络上共享外部硬盘上的文件夹。硬盘上的文件系统是 NTFS。我已将硬盘安装到,/media/myexthdd/
并且可以本地访问文件。然后我配置了 smbd 以共享目录/home/myusername/share
。当我复制此文件夹中的文件时,我可以通过 SMB 远程访问它们,因此一般来说,smbd 正在工作。然后我创建了一个符号链接/home/myusername/share/folder -> /media/myexthdd/folder
。符号链接有效,我可以在本地跟踪符号链接,但在访问 SMB 时不会显示它。我已经添加了以下几行:
follow symlinks = yes
wide links = yes
unix extensions = no
在 smb.conf 的 [global] 部分,我创建了另一个符号链接/home/myusername/share/testfolder/ -> /home/myusername/testfolder
用于测试目的。此符号链接也通过 SMB 显示,我可以跟踪符号链接并打开符号链接文件夹中的文件。所以我猜问题出在我挂载 NTFS 的方式上?顺便说一下,外部 NTFS 是通过以下命令挂载的:
sudo /sbin/mount.ntfs /dev/sda1 /media/myexthdd -o rw,nodev,nosuid,uid=1000,gid=1000,uhelper=udisks2
已挂载 fs 中的所有文件和目录都具有 777 权限。那么,要怎么做才能通过 SMB 显示指向 NTFS 的符号链接,以及我可以通过 SMB 访问指向 NTFS 的符号链接?
答案1
您不能共享明确共享的目录树之外的目录树。将后者的符号链接指向前者将不起作用;如果这样做,任何对网络共享具有写权限的人都可以创建符号链接来访问她本应无法访问的目录。
您需要通过显式网络共享来共享外部驱动器上的目录树,或者通过将外部驱动器上的目录结构挂载到现有网络共享上,将其转换为现有网络共享的子树。如果您不想将整个驱动器挂载在那里,则可以使用绑定挂载(请参阅的“绑定挂载”部分man mount
)。