Mount

只要應用程序知道卷的地址或路徑,就允許應用程序使用網路共享卷

  • September 2, 2016

我正在將應用程序從 Windows 移植到 Linux(特別是 Ubuntu 14.04)。應用程序需要將數據寫入 NAS 上的網路共享卷。

在 Windows 上,只要滿足以下條件,我的應用程序就可以訪問 NAS 上的 SMB3 共享卷:

  1. 它知道 SMB3 共享卷的 UNC 路徑
  2. 執行應用程序的帳戶被授權(即客戶端和伺服器之間的使用者名和密碼相同)。

我不需要在應用程序之外安裝或映射 SMB3 共享卷的額外步驟。

是否有可能在 Linux 上實現類似的效果?重要的一點是,如果可能的話,我不想碰 fstab 或 autofs。我希望集中配置我的應用程序。如果我必須修改 fstab 或設置 autofs 規則,那麼從我的應用程序的角度來看,我開始將配置分佈在各處。網路共享卷僅供此特定應用程序使用;系統的其餘部分不在乎。

NAS 支持 SMB2/3 或 NFSv3/v4,我對使用一種協議而不是另一種協議沒有意見。

多虧了FUSE,您不需要 root 訪問權限來掛載文件系統。Samba 有一個 FUSE 驅動程序:smbnetfs

我用的不多,而且是很久以前的事了,但我記得如果伺服器有特殊性,配置起來並不完全簡單。這可能是也可能不是問題,具體取決於您的設置以及您的 NAT 偏離基本協議的程度。您需要為其提供將訪問的伺服器或域的列表。

或者,將您的應用程序與GVfs庫連結。(這不需要為您的使用者界面使用 Gnome 庫。)您需要使用 GIO 函式而不是openor fopen,這樣您就可以在包括 smb 在內的備用後端上指定文件。GVfs 需要重寫您的一些應用程序,而不僅僅是訪問特定目錄,但它的好處是除了提供憑據之外您不需要任何配置(通常通過將它們記錄在gnome-keyring中)。

引用自:https://unix.stackexchange.com/questions/307112