NFS服務器設置

一、NFS的相關概念

    NFS(Network File System)即網絡文件系統的縮寫,由Sun公司研發,其目的是為了解決網絡文件共享的問題。用戶可以實現像掛載本地文件系統一樣掛載NFS服務器的共享目錄;其具有配置簡單、使用高效的特點,但只能在Linux系統使用,不能跨平臺使用。

    NFS服務占用2049端口,但其對于不同的功能使用小于1024的隨機端口來傳輸數據,但如果是隨機端口客戶端如何知曉要訪問哪個端口呢?這就要借助于RPC協議了。

    RPC(Remote Procedure Call)即遠程過程調用,其作用是向客戶端告知NFS的端口信息;NFS服務啟動時會主動向RPC注冊所使用的端口,而RPC使用111端口來響應客戶端的請求,所以客戶端可以借助于RPC來完成NFS的訪問。

二、NFS文件訪問權限

    NFS服務本身沒有身份驗證的功能,權限是遵循共享目錄在NFS服務器上的權限設置,而且只識別UID和GID。假如現在有一個共享的目錄share其屬主、屬組及權限信息如下:

1.png

    用戶和組為mysql,但當客戶端訪問此目錄時,NFS是判定訪問者的uid是否為400,如果uid相符,那么訪問者就有可能擁有與mysql用戶相同的權限,這還要取決于/share設置共享時所分配的權限;如果訪問者的uid對應了NFS服務器上的另一個用戶,則訪問者就對應擁有other權限,但是否能夠完全對應用other權限也要取決于\share的共享權限;如果訪問者的uid恰好在NFS服務器上不存在,則服務器用自動將其壓縮成為匿名用戶,其uid為65534,而CentOS將其顯示為nfsnobody。

    由于在絕大部分Linux系統中root用戶的uid為0,也就是說客戶端可以輕易的獲得NFS的root權限來訪問共享目錄,這樣是極不安全的,所以NFS默認用將root的身份壓縮成匿名用戶。

三、NFS服務端的配置

    1、安裝NFS服務

2.png

    在安裝nfs-utils的同時會安裝rpcbind程序。

3.png

    2、配置NFS服務

        NFS服務使用/etc/exports配置文件進行設置,其語法格式如下:

4.png

        /share:表示共享的文件系統;       

        192.168.2.0/24:允許連接共享文件系統的客戶端;

        (rw):客戶端對于共享文件系統所擁有的權限;

        *.test.com(ro):表示test.com為后綴的主機都可以對/share目錄有只讀的權限;

    客戶端的設置方式:

        (1)IP地址,如192.168.2.10;

        (2)網絡地址,如192.168.2.0/24,或192.168.2.0/255.255.255.0;

        (3)主機名,如client.test.com,也可以使用通配符,“*”或“?”。

    常用權限參數:

        rw:可讀可寫;

        ro:只讀;

        root_squash:將root用戶壓縮成為匿名用戶(默認選項);

        no_root_squash:訪問共享目錄時保持root用戶身份;

        all_squash:將所有訪問NFS的用戶身份全部壓縮成為匿名用戶;

        sync:將數據同步寫入到內存和硬盤中;

        async:將數據暫存于內存中。

        anonuid:指定匿名訪問用戶的UID;

        anongid:指定匿名訪問用戶組的GID。

        更多的參數可自行man exports來進行查閱。

四、啟動NFS服務

5.png    查看NFS開啟的端口信息:

6.png

7.png

        NFS服務本身啟動在2049端口,rpcbind啟動在111端口。

    可以使用rpcinfo命令來查看rpc的相關信息,其格式如下:

        rpc [option] [IP|hostname]

            option:

                -p:顯示所有的port與program信息。

8.png

五、NFS的查看命令

    下面來介紹兩個經常用到的查看命令。

    (1)showmount命令

        格式:showmount [option] [IP|hostname]

            option:

                -a:顯示當前主機與客戶端的NFS連接共享的狀態;

                -e:顯示某臺主機的/etc/exports所共享的目錄信息。

9.png

    (2)exportfs命令

        格式:exportfs [option]

            option:

                -a:全部掛載(或卸載)/etc/exports文件中的設置;

                -r:重新掛載/etc/exports中的設置;

                -u:卸載某一目錄;

                -v:將命令輸出顯示到屏幕。

10.png11.png

六、NFS客戶端設置

    (1)手動掛載NFS共享目錄

11.png

    (2)開機自動掛載NFS共享目錄

        1)/etc/fstab

12.png

      _netdev:此選項表示在NFS服務器宕機時,也不會影響本地系統的啟動。 

        2)/etc/rc.d/rc.local

13.png

        3)使用autofs

            使用autofs可以實現按需掛載,當用戶訪問共享目錄時,目錄才會被自動掛載上,過一段時間沒有使用又會被自動卸載。

            安裝autofs服務:

15.png

            配置主配置文件/etc/auto.master:

16.png

            定義/etc/auto.nfs文件,此文件中指時掛載信息即可:

17.png

        注意本地的掛載目錄/auto/nfs不需要事先建立,autofs會自動建立。

            啟動autofs服務:

16.png

            驗證:直接切換到/auto/nfs目錄中;

17.png

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/5603

(0)
petmasterpetmaster
上一篇 2015-06-25
下一篇 2015-06-25

相關推薦

  • Hello World, Hello Linux.

    文筆不好,請見諒。

    2018-03-26
  • 網絡管理之基礎知識

    Linux的網絡配置 IP地址 ?  它們可唯一標識 IP 網絡中的每臺設備 ? 每臺主機(計算機、網絡設備、外圍設備)必須具有唯 一的地址 ? IP地址由兩部分組成: ? 網絡ID: ? 標識網絡 ? 每個網段分配一個網絡ID ? 主機 ID: ? 標識單個主機 ? 由組織分配給各設備   IPv4地址格式:點分十進制記法  …

    Linux干貨 2016-09-10
  • bash的基本特性之globbing,IO重定向及管道

    bash的基本特性之globbing,IO重定向及管道 giobbing:文件名通配 在bash的操作環境中有一個分廠有用的功能那就是gilobbing:文件名通配,這樣我們在處理數據的時候就更方便了。下面我們來羅列一些常用的通配符。(注:globbing是做整體的文件名匹配而非部分) 匹配模式:元字符 *:表示匹配任意長度的任意字符  &nbsp…

    Linux干貨 2016-12-19
  • 數據庫基礎

    數據庫基礎 一、數據模型 數據庫模型圖 1、層次模型、2、網狀模型、 3、關系模型二維關系: 表:就是一個關系及屬性的描述,如:學生(學好,姓名,性別,班級)       行:row, entity       列:colume,…

    Linux干貨 2016-10-19
  • Linux上功能強大的文本編輯工具—vim

    vim–Vi Improved是一款全屏文本編輯器 vi: Visual Interface,文本編輯器 可見,vim是vi的升級版,所以我們當然要學習vim! vim的功能強大,自然命令、用法也會種類繁多,想要用的得心應手自然是需要長期的實際操作的,正所謂工欲善其事必先利其器,我們要想能夠在linux上從容應對繁多的文本編輯,無疑vim編輯器是…

    Linux干貨 2016-08-12
  • 馬哥教育21期網絡班—第15周課程+練習—-sed 總結

    sed:編輯器 流編輯器,文本流編輯 ed: Stream EDitor, 行編輯器; 介紹:sed是 一個非交換性文本流編輯器,它編輯文件或標準輸入導出的文本拷貝。標準輸入可能來自鍵盤、文件重定向、字符串或變量,或者管道的文本。 sed可以干什么? 別忘了vi也是一個文本編輯器。sed可以隨意編輯小或大的文件,有許多…

    Linux干貨 2016-11-14
欧美性久久久久