當前位置:首頁 » 文件管理 » nfs可以文件共享嗎

nfs可以文件共享嗎

發布時間: 2022-12-15 02:46:38

Ⅰ Ubuntu 16.04 搭建 NFS 文件共享伺服器

伺服器端需要安裝 nfs-kernel-server 軟體包:
$ sudo apt-get update
$ sudo apt-get install nfs-kernel-server

默認情況下,NFS 伺服器上定義了某個共享目錄,則該目錄及其子目錄下的所有文件都可被訪問。
出於對安全的考慮,客戶端任何需要 超級用戶 (即 root 用戶,UID=0 & GID=0)許可權的文件操作都默認映射到 UID=65534 和 GID=65534 的用戶,即 Ubuntu 系統中的 nobody:nogroup。
例如客戶端使用 root 許可權在掛載的共享目錄中創建文件時,該文件的 屬主 屬組 自動變為 nobody:nogroup ,而非 root:root

sudo mkdir -p /var/nfs/gernel
sudo mkdir -p /var/nfs/public
sudo chown nobody:nogroup /var/nfs/gernel

為了使 NFS 伺服器定義的共享文件可被指定的客戶端主機訪問,需要在伺服器端的 /etc/exports 文件中添加對應的記錄。
該文件的格式如下:
Directory Host(Options ...) Host(Options) #comment
關於 /etc/exports 文件的詳細語法格式可參考 man exports 。

文件示例:

列出 nfs 伺服器上的共享目錄

創建掛載點
sudo mkdir -p /mnt/nfs/gernel
sudo mkdir -p /mnt/nfs/public
sudo mkdir -p /mnt/nfs/starky

掛載遠程目錄
sudo mount 192.168.56.102:/var/nfs/gernel /mnt/nfs/gernel
sudo mount 192.168.56.102:/var/nfs/public /mnt/nfs/public
sudo mount 192.168.56.102:/home/starky /mnt/nfs/starky

許可權測試

NFS 的許可權設定基於 Linux 文件系統的許可權管理,即客戶端掛載遠程共享目錄後,會把它們當成本地磁碟目錄一樣對待,也是根據文件的屬主(組)及其對應的許可權設定來限制訪問。
gernel 目錄的屬主(組)為 nobody:nogroup(65534:65534),所以雖然該目錄為讀寫許可權,非 root 用戶無法執行新建操作。而 root 用戶由於 NFS 默認的安全機制,會自動映射到 nobody:nogroup。
由於我在客戶端和服務端都有一個名為 starky 的用戶,且它們的 UID:GID 都為1000:1000,所以服務端的 /home/starky 目錄可以直接被客戶端的 starky 用戶訪問。且由於 no_root_squash 選項,通過 sudo 命令創建的文件其屬主仍為 root(而不會再映射為 nobody)。
當然這會導致一些安全問題,比如多個客戶端同時都有 UID(GID)為1000的用戶(不管用戶名是什麼),則這些用戶會共享服務端 /home/starky 目錄里的文件許可權。

可編輯 /etc/fstab 文件令掛載共享目錄的 mount 操作成為系統的固定配置(手動輸入的 mount 命令屬於臨時掛載,重啟會自動卸載),使得系統重啟後可以自動掛載遠程文件系統。 /etc/fstab 文件的示例內容如下:

/etc/exports 文件的格式為: Directory Host(Options ...) Host(Options) #comment
其中的 Host 項用來指定可訪問對應共享目錄的主機,其格式可分為以下幾種:

傳輸協議
最初的 NFSv2 由於性能原因使用 UDP 協議,雖然 NFS 添加了自己的 包序列重組 錯誤檢查 功能,但 UDP 和 NFS 都不具備 阻塞控制 演算法,所以在大型的互聯網路環境中缺乏足夠的性能。
NFSv3 提供了 UDP 和 TCP 協議之間的選擇。NFSv4 只能使用 TCP 協議。
隨著 CPU,內存等硬體設備和網路傳輸速度的提高,最初由於性能需求而傾向 UDP 協議的選擇也變得不再必要。

State
NFSv2 和 NFSv3 是 無狀態 的連接,服務端不會跟蹤客戶端對共享目錄的掛載情況,而是使用 "cookie" 來記錄一次成功的掛載。"cookie" 不會因為伺服器重啟而刪除,可以用來在伺服器掛掉之後保留客戶端的連接信息。
NFSv4 是 有狀態 的連接,客戶端和服務端都會維護文件操作紀錄及文件鎖的狀態。所以不再需要 "cookie" 的使用。

文件鎖
早期版本的 NFS 協議(v2 & v3)由於是 無狀態 的連接,它們並不清楚哪些主機正在使用哪些文件。但是文件鎖的實現又需要獲取狀態信息。所以早期協議中的文件鎖是獨立於 NFS 實現的。
而 NFSv4 將文件鎖的實現整合到了核心協議中,雖然此舉增加了復雜度,但同時也解決了早期版本中的很多問題。
但是為了兼容使用 V2 和 V3 協議的客戶端,獨立的 locked statd 守護進程仍舊需要。

安全相關
NFS 協議最初在設計時並不關注安全性,NFSv4 通過引入對更強大的安全服務和身份驗證的支持,加強了該協議的安全性。

傳統的 NFS 協議大多使用 AUTH_SYS 驗證方式,基於 UNIX 的用戶和組標識。在這種方式下,客戶端只需要發送自己的 UID 和 GID 並與伺服器上的 /etc/passwd 文件內容作對比,以決定其擁有怎樣的許可權。
所以當多個客戶端存在 UID 相同的用戶時,這些用戶會擁有相同的文件許可權。更進一步,擁有 root 許可權的用戶可以通過 su 命令切換到任意 UID 登錄,伺服器會因此給予其對應 UID 的許可權。
為了防止上面的問題出現,伺服器可選擇使用更健壯的驗證機制比如 Kerberos 結合 NFS PRCSEC_GSS。

NFS 共享目錄的訪問控制基於 /etc/exports 文件中定義的主機名或 IP 地址。但是客戶端很容易針對其身份和 IP 地址造假,這也會導致一些安全問題。
NFSv4 只使用 TCP 作為自己的傳輸協議,而且通常只開放 2049 埠進行數據傳輸。在配置防火牆時,除了放開 2049 埠的限制外,還要時刻注意數據傳輸的源地址和目標地址。

win10 系統默認不能掛載 NFS 共享目錄,需要進入 控制面板 - 程序 - 程序和功能 - 啟用或關閉 Windows 功能 ,勾選上 NFS 服務

UNIX and Linux System Administration Handbook, 4th Edition
How to Mount an NFS Share Using a Windows 10 Machine

Ⅱ 不同操作系統可以使用nfs共享嗎

1.本地工作站使用更少的磁碟空間,因為通常的數據可以存放在一台機器上而且可以通過網路訪問到。
2.用戶不必在每個網路上機器里頭都有一個home目錄。Home目錄 可以被放在NFS伺服器上並且在網路上處處可用。
3.諸如軟碟機,CDROM,和 Zip(是指一種高儲存密度的磁碟驅動器與磁碟)之類的存儲設備可以在網路上面被別的機器使用。這可以減少整個網路上的可移動介質設備的數量

Ⅲ nfs共享如何___

步驟如下:
1.TOS桌面,控制面板,文件服務;
2.NFS文件服務,勾選NFS文件服務,然後點擊應用;
3.訪問許可權,共享文件夾,設置共享文件夾;
4.選擇你要被播放機等訪問的文件夾,點擊編輯,選擇NFS;
5.設置訪問訪問許可權及允許訪問的IP或網段,點擊確認(其中「*」代表允許所有訪問,空白代表拒絕所有訪問)6.設置完成後,你的播放器如果支持NFS協議的話,就可以看到鐵威馬NAS通過NFS共享的文件夾了。

Ⅳ 群暉NFS 共享許可權設置

參考:
https://kb.synology.cn/zh-cn/DSM/tutorial/What_can_I_do_to_access_mounted_folders_NFS

1、開啟服務
控制面板 -> 文件服務 -> SMB/AFP/NFS -> 勾選 啟用NFS服務

2、設置共享文件的NFS許可權
控制面板 -> 共享文件夾 -> 選擇需要共享的文件 -> 編輯 -> NFS許可權 -> 新增

如果要向所有用戶授予相同許可權,請設置 Squash 選擇每個文件/文件夾的NFS規則並選擇將所有用戶映射到admin 。

當使用此Squash選項設置NFS許可權時,所有用戶將被視為Synology NAS上的「管理員」並有權訪問所有文件/文件夾。
當用戶創建文件/文件夾時,文件/文件夾的創建者被列為「admin」。

如果您要為不同的用戶提供不同的訪問許可權,您必須將所有計算機和Synology NAS加入同一個LDAP伺服器。為Synology NAS 1上的每個文件/文件夾設置LDAP帳戶許可權,以便不同用戶(LDAP帳戶)可以通過相應許可權訪問文件/文件夾。然後,參閱本文以為每個文件/文件夾設置NFS規則,並為Squash選擇 無映射

參考:
https://kb.synology.cn/zh-cn/DSM/tutorial/How_to_access_files_on_Synology_NAS_within_the_local_network_NFS

查看掛載目錄

輸入掛載命令以在客戶端通過 NFS 裝載共享文件夾

輸入disk free命令以確認您已成功裝載共享文件夾。文件系統列中的輸出應採用以下格式: [Synology NAS IP address]:[mount path of shared folder]

掛載不了時,檢查一下命令,地址
ping一下ip
telnet一下埠: telnet 192.168.31.66 2049