1 / 28

網路伺服器應用 Linux Server

網路伺服器應用 Linux Server. Andres, Wen-Yuan Liao Department of Computer Science and Engineering De Lin Institute of Technology andres@dlit.edu.tw http://www.cse.dlit.edu.tw/~andres. Chapter 15 簡易 NFS 伺服器設定. 15.1 NFS 的由來與其功能. 什麼是 NFS (Network File System) 由 Sun 公司所發展

eliza
Download Presentation

網路伺服器應用 Linux Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 網路伺服器應用Linux Server Andres, Wen-Yuan Liao Department of Computer Science and Engineering De Lin Institute of Technology andres@dlit.edu.tw http://www.cse.dlit.edu.tw/~andres

  2. Chapter 15 簡易 NFS 伺服器設定

  3. 15.1 NFS 的由來與其功能 • 什麼是 NFS (Network File System) • 由 Sun 公司所發展 • 透過網路,讓不同的機器、不同的作業系統、可以彼此分享檔案 • 其他的 Personal Computer 可以掛載 NFS server 所提供的檔案或目錄 • NFS 使用一個稱為遠端程序呼叫(Remote Procedure Call, RPC)的協定來協助 NFS 本身的運作

  4. RPC • Remote Procedure Call • 使用某些服務來進行遠端連線時,有些資訊需要管理與對應, 例如 • 主機的 IP • 服務的 port number • 對應到的服務之 PID

  5. NFS 啟動的 RPC daemons • NFS server 總共需要啟用至少兩個 daemons • rpc.nfsd • 管理 Client 是否能夠登入主機的權限 • rpc.mountd • 管理 NFS 的檔案系統

  6. 15.2 需要的套件 • portmap • port 對應 ( mapping ) 的工作 • 在啟動任何一個 RPC server 之前,需啟動 portmap daemon • nfs-utils • rpc.nfsd 及 rpc.mountd daemons • 其他相關 documents 與說明文件、執行檔等 • rpm -qa | grep nfs • rpm -qa | grep portmap

  7. 15.3 Server 端的設定 • Server端 • 確認Linux 主機是否可以支援 NFS 服務 • 設定使用者來源IP或主機名稱以及分享的目錄權限 • 啟動NFS • Client 端 • showmount程式檢查Linux Server是否有可以使用的 NFS 目錄 • 如果有就mount 在本機上面

  8. 設定流程 • /etc/exports • 關於權限問題 • 啟動服務 portmap, nfsd • /usr/sbin/exportfs • /var/lib/nfs/xtab:檢驗目錄 • /usr/sbin/showmount • 觀察啟動的 port number

  9. 1. /etc/exports • 欲分享的目錄  主機名稱1或IP1(參數1,參數2) 主機名稱2或IP2(參數3,參數4) • 參數 • rw • 可讀寫 • ro • 唯讀 • no_root_squash • 登入 NFS 主機使用分享目錄的使用者如果是 root,對於這個分享的目錄來說他就具有 root 的權限 • root_squash • 在登入 NFS 主機使用分享目錄的使用者如果是 root 時,這個使用者的權限將被壓縮成為匿名使用者,通常他的 UID 與 GID 都會變成 nobody 身份

  10. /etc/exports (Cont.) • 參數 • all_squash • 不論登入 NFS 的使用者身份為何,他的身份都會被壓縮成為匿名使用者,通常也就是 nobody • anonuid • 關於 *_squash 提到的匿名使用者的 UID 設定值,通常為 nobody,但是可以自行設定UID值,這個 UID 必需要存在於/etc/passwd當中 • anongid • 同 anonuid ,但是變成 group ID

  11. Examples • /tmp  *(rw,no_root_squash) • /home/public192.168.0.*(rw)   *(ro) • /home/public192.168.0.0/24(rw) *(ro) • /home/test192.168.0.100(rw) • /home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40)

  12. 2. 關於權限問題

  13. 3. 啟動服務 portmap, nfsd • /etc/rc.d/init.d/portmap start • port 111 的 sunrpc 服務 • /etc/rc.d/init.d/nfs start • /var/log/messages • Nov 16 15:04:45 test portmap: portmap startup succeeded Nov 16 15:04:53 test nfs: Starting NFS services:  succeeded Nov 16 15:04:54 test nfs: rpc.rquotad startup succeeded Nov 16 15:04:54 test nfs: rpc.mountd startup succeeded Nov 16 15:04:54 test nfs: rpc.nfsd startup succeeded

  14. 4. /usr/sbin/exportfs • 修改/etc/exports檔案後不需要重新啟動 nfs • exportfs 重新掃瞄/etc/exports 檔案,並重新載入設定 • exportfs [-aruv] • a • 全部掛載(或卸載) /etc/exports 檔案內的設定 • r • 重新掛載 /etc/exports 裡面的設定 • 同步更新 /etc/exports及 /var/lib/nfs/xtab 的內容 • u • 卸載某一目錄 • v • 在 export 的時候,將分享的目錄顯示到螢幕上!

  15. Example • exportfs -rv exporting 192.168.0.100:/home/test exporting 192.168.0.*:/home/public exporting *.linux.org:/home/linux exporting *:/home/public exporting *:/tmp reexporting 192.168.0.100:/home/test to kernel • exportfs -au

  16. 5. /var/lib/nfs/xtab:檢驗目錄 • 檢驗分享的目錄內容 • vi /var/lib/nfs/xtab /home/test  192.168.0.100(rw,sync,wdelay,hide,secure,root_squash,no_all_squash,subtree_check,secure_locks,mapping=identity,anonuid=-2, anongid=-2)

  17. 6. /usr/sbin/showmount • 看看有沒有可以 mount 的 • showmount [-ae] hostnamea • a • 在螢幕上顯示目前主機與 Client 所連上來的使用目錄狀態 • e • 顯示 hostname 這部機器的 /etc/exports 裡面的分享目錄

  18. Example • showmount -e localhost Export list for localhost: /tmp         * /home/linux  *.linux.org /home/public (everyone) /home/test   192.168.0.100

  19. 7. 觀察啟動的 port number • netstat -utln

  20. 15.4 Client 端的設定 • 掛載遠端主機 • 掃瞄可以使用的 Server 目錄 • showmount –e 192.168.1.2 • 在 Client 端建立 mount point • mkdir –p /home/nfs/public • 將遠端主機分享的目錄掛載進來 • mount –t nfs 192.168.1.2:/home/public /home/nfs/public • 可能發生的問題解決(被防火牆擋掉)

  21. 15.5 關機或結束時的注意事項 • 如果Server上面還有 Client 在連線,那麼要關機,可能得要等到數個鐘頭才能夠正常的關機成功 • NFS Server關機之前,先關掉 portmap 與 nfs • 先以 netstat -utlp 找出 PID ,然後以 kill 關掉

  22. 15.7 實際演練 • Linux 主機為 192.168.1.100 • 將 /tmp 以可讀寫,並且不限制使用者身份的方式分享給所有 192.168.1.0/24 這個網域中的所有 Linux 工作站 • 開放 /home/nfs 這個目錄,使用的屬性為唯讀,可提供除了網域內的工作站外,向外亦提供資料內容 • 開放 /home/upload 做為 192.168.1.0/24 網域的資料上傳目錄,其中,/home/upload 的使用者及所屬群組為 nfs-upload 這個名字,他的 UID 與 GID 均為 210 • 將/home/andy 目錄僅分享給 192.168.1.2 主機,以提供該主機上面 andy 這個使用者來使用,也就是說, andy 在 192.168.1.100 及 192.168.1.2 均有帳號,且帳號均為 andy ,所以預計開放 /home/andy 給 andy 使用他的家目錄

  23. 1. 建立 /etc/exports • vi /etc/exports /tmp192.168.0.*(rw,no_root_squash) /home/nfs192.168.0.*(ro)  *(ro,all_squash) /home/upload192.168.0.*(rw,all_squash,anonuid=210,anongid=210) /home/andy192.168.0.50(rw)

  24. 2. 建立每個對應的目錄的實際 Linux 權限 1. /tmp ls -l  drwxrwxrwt    6 root     root         4096 Nov 16 09:07 tmp 2. /home/nfs mkdir -p /home/nfs            chmod 755 -R /home/nfs     

  25. 建立每個對應的目錄的實際 Linux 權限 3. /home/upload groupadd -g 210 nfs-upload  useradd -g 210 -u 210 -M nfs-upload mkdir -p /home/upload       chown -R nfs-upload:nfs-upload /home/upload 4. /home/andy ls -l /home drwx------    3 andy     andy         4096 Oct 28 13:37 andy

  26. 3.啟動 portmap 與 nfs 服務 • /etc/rc.d/init.d/portmap start • etc/rc.d/init.d/nfs start

  27. 在 192.168.0.100 client機器上面演練 1. 確認可用目錄 showmount -e 192.168.0.100 Export list for 192.168.0.100: /tmp         192.168.0.* /home/nfs    (everyone) /home/upload 192.168.0.* /home/andy   192.168.0.50 2. 建立掛載點: mkdir -p /home/zzz/tmp mkdir -p /home/zzz/nfs mkdir -p /home/zzz/upload mkdir -p /home/zzz/andy

  28. 在 192.168.0.100 client機器上面演練 3. 實際掛載: su   mount -t nfs 192.168.0.100:/tmp /home/zzz/tmp mount -t nfs 192.168.0.100:/home/nfs /home/zzz/nfs mount -t nfs 192.168.0.100:/home/upload /home/zzz/upload mount -t nfs 192.168.0.100:/home/andy /home/zzz/andy exit

More Related