我正在将应用程序从 Windows 移植到 Linux(特别是 Ubuntu 14.04)。应用程序需要将数据写入NAS上的网络共享卷。
在 Windows 上,只要满足以下条件,我的应用程序就可以访问 NAS 上的 SMB3 共享卷:
- 它知道 SMB3 共享卷的 UNC 路径
- 应用程序运行所使用的帐户已被授权(即客户端和服务器之间的用户名和密码相同)。
我不需要安装或映射 SMB3 共享卷的额外步骤外部的应用程序。
在Linux上是否也能达到类似的效果?重要的一点是,如果可能的话,我不想碰 fstab 或 autofs。我希望我的应用程序的配置是集中的。如果我必须修改 fstab 或设置 autofs 规则,那么从我的应用程序的角度来看,我开始将配置分散到各处。网络共享量为仅有的由该特定应用程序使用;系统的其余部分并不关心。
NAS 支持 SMB2/3 或 NFSv3/v4,我对使用一种协议而不是另一种协议没有意见。
答案1
您不需要 root 访问权限来挂载文件系统,这要归功于保险丝。 Samba 有一个 FUSE 驱动程序:SMB网络文件系统。
我很少使用它,而且是很久以前的事了,但我记得如果服务器有特殊性,配置起来并不完全简单。这可能是也可能不是问题,具体取决于您的设置以及 NAT 与基本协议的偏离程度。您需要为其提供它将访问的服务器或域的列表。
或者,将您的应用程序链接到重力速度图书馆。 (这不需要为您的用户界面使用 Gnome 库。)您需要使用 GIO 函数而不是open
或fopen
,这样您就可以通过以下方式指定文件备用后端包括某人。 GVfs 需要重写一些应用程序,而不仅仅是访问特定目录,但它的好处是,除了提供凭据之外,您不需要任何配置(通常通过将它们记录在gnome 钥匙圈)。