我一直在为此绞尽脑汁,并想将其发布出来以查看我是否遗漏了任何明显的东西!
场景是这样的:
该服务器包含一个非常大的文件夹,称为“Programmes”,它是一个 LVM 卷,通过网络共享(混合在 Ubuntu 和 OSX 之间),所有用户都被授予 R/W 访问权限。
我们的工作室安装了网络摄像头(我在伦敦的一个广播电台写这篇文章),并通过 FTP 将图像传输到服务器上的用户帐户(/home/webcam
)。
我想绑定/home/webcam
程序下的目录,以便在导出程序时网络可以访问它。
我在 fstab 中完成了以下操作:
#LVM Disk
UUID_OF_LVM /media/Programmes ext3 errors=remount ro,users,user,relatime
#Bind Web Cam directory and then remount with new RO options
/home/webcam /media/Programmes/Web_Cam none bind,user 0 0
/media/Programmes/Web_Cam /media/Programmes/Web_Cam none remount,ro 0 0
#Bind to export directory and use rbind to include submounts
/media/Programmes /export/Programmes bind rbind
在我的/etc/exports中:
/export/Programmes 10.0.2.0/255.255.255.0(nohide,fsid=0,async,all_squash,anonu id=1000,anongid=1000,insecure,no_subtree_check,rw, crossmnt)
我可以在客户端上看到 Web-Cam 文件夹,但它是空的。我怀疑这是用户权限的问题,因为我正在导出用户主目录(巧合的是,在 Ubuntu 上,目录上有锁)
答案1
NFS 不“共享文件夹”(它不是 SMB/CIFS)。它导出整个文件系统。您必须指定要通过 NFS 导出哪些文件系统。如果您在导出的文件系统中挂载或链接文件系统,它将不会继承导出,您还必须明确导出它。
答案2
您所要求的需要 NFS 版本 4:
NFS 版本 4 服务器创建并维护伪文件系统,使客户端能够无缝访问服务器上的所有导出对象。在 NFS 版本 4 之前,伪文件系统并不存在。客户端被迫挂载每个共享服务器文件系统才能进行访问。