第二章﹕NFS 和 NIS


發揮網路功能

當您的 Linux 主機安裝好並連上網路之後﹐那麼很自然會進行遠端操作吧。最常用的服務就是 telnet 了﹐它可以讓您從一台機器登錄到另外一台機器﹐然後完成所有遠端的作業。使用 telnet ﹐有點像“網路基礎”中的“Telecommunication”那裡所說的 remote control ﹐也就是﹐您可以利用其他機器鍵盤和熒幕遠端使用 Linux 主機。如果您使用 Windows 98 連接 Linux 的話﹕
按 ‘開始’--> ‘執行’--> 然後輸入﹕ telnet 192.168.100.23 (如果 dns 或 hosts 檔案設定好了﹐可以輸入機器名稱)﹐您就會看到一個登錄畫面了﹐不過﹐先別急著輸入您的大名和密碼﹐做做下面的動作﹕

  1. 連線 --> 中斷
  2. 連線 --> 遠端系統 --> Term Type:
  3. 選擇 DEC-VT100
  4. 按‘連線’

然後再進行登錄不遲。為什麼這樣做﹖我也不知道啦﹐本來我用以前的 Redhat 好好的﹐但後來換了 Redhat 6.0 之後﹐只要進入 vi 等文書編輯器﹐方向鍵就不聽使喚了﹐只有做了上面動作才可以。後來發現﹐只要在 /etc/bashrc 檔案裡面加下面這一行就解決了﹕

export TERM=vt100

然而﹐在 RH7.1 上面預設是將 telnet 功能關閉的﹐您得修改 /etc/xinetd.d/telnet 裡面的設定﹐設定 disable = no 才可以提供 telnet 服務。不過﹐系統之所以要關閉 telnet ﹐是因為它在網路上使用明碼(clear text) 方式傳送數據的緣故。為此﹐在 RH7.1 上面使用 ssh 服務來取代 telnet 服務﹐關於 ssh 的設定﹐您可以參考‘Linux System’系列中的‘基本設定’﹐這裡不再重複。只是再提醒您一次﹕能用 ssh 就不要用 telnet ﹗

Okay﹐不管您使用 telnet 還是 ssh﹐所使用的檔案系統和資源都在遠端系統上面﹐如果您要將資料回存在本地電腦上面就不那麼方便了。除了用 ftp 之外﹐您有否想過將遠端的資料 mount 進本地的檔案系統中呢﹖那麼﹐NFS(Network File System) 就可以幫到你了。

另外﹐在網路環境中﹐理想的情況下是讓使用者能夠從網路上任何一台系統進行登錄﹐也只有這樣﹐您才能在登錄之後使用 telnet 服務。然而﹐為了讓使用者能夠在網路上登錄﹐您就必須為每一個使用者在所有 Linux 機器上建立獨立的帳號。是否太麻煩了呢﹖您是否希望 Linux 能像 NT 那樣有一個中央的 DOMAIN 登錄資料庫呢﹖有此念頭完全正確﹐而好消息是﹕您在 Linux 上面使用 NIS (Network Information Service) 就能做到﹗

或許﹐在一些大型的網路伺服器設計上﹐例如設定多台 email server 來進行 load balancing 服務﹐除了前端需要 DNS 和其它一些負載分流技術之外﹐在後端﹐也不能避免的碰到帳號同步和資料同步的需求。前端的技術我們留代日後慢慢探討﹐至於後端的技術﹐完全可以用 NFS 和 NIS 來做到。這也是我們這章的重點﹐假如您是一個 windows 用戶﹐在看完下面的文章後﹐肯定讓您震撼於 Linux 的強大網路功能而目瞪口呆﹗

先將我的網路環境說說吧(您可以參考上一章所介紹的環境)﹕

  系統 主機名稱 IP 位址
伺服端 RedHat 7.1 rh71.siyongc.domain 192.168.100.23
客戶端 Mandrak 8.0 mdk.siyongc.domain 192.168.100.24

設定 NFS

請先確定 nfs-utils 套件有裝起來(rpm -qa | grep nfs)﹐如果沒有﹐請用 rpm 安裝。假如需要在一開機的時候就啟動 nfs 服務的話﹐那就用 ntsysv 將 nfs 選起來吧。喜歡的話﹐把 nfslock 也一並開啟也無妨(請 man lockd)。

事實上﹐要設定 NFS 一點都不難﹐關鍵是 server 那端﹕/etc/exports 這個檔案。在真正動手設定之前﹐我建議您先看看它的 manual ﹕

man 5 exports

請小心設定這個檔﹐如果設定錯誤了﹐以後重新開機的時候您可就得非常不耐煩了。我是這樣設定﹕

/tmp *(rw,no_root_squash)
/usr/src *.siyongc.domain(ro,insecure) 192.168.100.*(ro,insecure)
/var/ftp/pub/incoming 192.168.100.24(rw,all_squash,anonuid=50,anongid=50)

第一行﹐我將 /tmp 這個目錄完全分享出去了﹐不管客戶端來自哪裡。在括號裡面的‘rw’就是 Read&Write 的意思﹐而‘no_root_squash’呢﹐則是允許讓使用者具備 root 的權限﹐在某些特殊情況下﹐例如使用 bootp 登錄的無磁碟工作站﹐是相當好用的。因為預設情況下 NFS 會將 root 的身份 squash 為權限最低的 anonymous (nobody) 身份﹐而其它身份則以 client 端機器上當時擁有的 User ID 和 Group ID (指號碼的值)來建立檔案。注意哦﹐在進權限判斷的時候﹐ 不是以 UserName 來作為身份依據哦﹐UID 和 GID 的號碼最後必須對應到 server 端的 /etc/passwd ﹐而非 client 那邊的。

第二行﹐我將 /usr/src 這個目錄分享給以 siyongc.domain 這個 domain 做結尾或是以 192.168.100 開頭的所有機器﹐而無需使用 secure port (insecure)﹐但只具備唯讀權限(ro)。這裡﹐您要留意 " * " 的使用﹐在一些舊版本的 NFS 您不能用在 IP 上。不過﹐我這裡的測試卻是可行的。

第三行﹐我將 /var/ftp/pub/incoming 這個目錄只分享給 192.168.0.22 這台機器﹐且具備了讀和寫的權限(rw)﹐但在 server 上寫入的檔案﹐必須換成 anonymous 身份進行。但是其後的設定又將所有 anonymous 換成設定的 UID 和 GID (這裡都是 ftp)﹐這樣的安排是要確定所有存取都按指定身份進行。這個 incoming 目錄預設是不存在的﹐日後在討論到 FTP 服務設定時候會提到﹐但您可以自行用 mkdir 建立﹐而且為 group 和 others 加上 +w 權限以及 sgid 和 sticky bit (3777)。

Tips﹕如果您不知道或不想直接修改 /etc/exports 檔案﹐您可以使用 netconf 然後選擇‘Exported file system (NFS)’來進行設定。

完成 exports 設定後﹐就是重新啟動 nfsd ﹕

service nfs stop
service nfs start

哦﹐我不建議您用 restart 來進行﹐最好用 stop 和 start ﹐並且重複兩次﹐確定在第二次 stop 的時候﹐沒看到紅色的 [ FAILED ] 信息。因為我發現如果設定不正確﹐就算您執行 start ﹐也看到了四個 [ OK] ﹐但事實上未必真的成功跑起來﹐只能在 stop 的時候才能發現。另外一個原因是﹕如果設定錯誤﹐很可能導致 nfs 在啟動的時候要等非常久的時間﹐這是不勝其煩的﹐尤其在開機的時候。所以﹐當您每次修改完 nfs 的設定﹐一定要 stop 再 start 看看﹐沒問題才關機﹐否則下次開機可要培養耐性了。

Tips﹕如果您確定 /etc/exports 檔設定無誤﹐要重新讀取其設定﹐只需輸入如下命令就可以了﹕

exportfs -rv

假如有錯誤的話﹐應該會得到提示的。

為求確定﹐您最好執行﹕

showmount -e localhost

如果這個命令不能正確顯示您所 export 的內容﹐那就重新檢查設定步驟吧。

測試 NFS

一但 server 設定好之後﹐您只需在 client 端建立 mount point﹐然後用 mount 命令來掛載即可。不過﹐mount 之前最好用 showmount 來確定一下﹕

showmount -e rh71

Tips﹕假如在 server 那邊 showmount -e localhost 有結果﹐而在 client 這邊 showmount -e server 卻不成功﹐那可能是防火牆或是 xinetd 的問題(參考後面的說明)。當然﹐前提是要確定連線是通的啦﹐ping 一下就知道了。

當 showmount 能順利找到 server 的 exports 之後﹐那就可以放心 mount 了﹕

mkdir /mnt/nfs
mount -t nfs -o bg,soft,intr rh71:/tmp /mnt/nfs

然後﹐就好像自己的硬碟一樣使用~~ ^_^ 要卸載它﹐用 umount 命令就可以。不過﹐如果沒有那些 -o 參數﹐然後在卸載之前您將 server 的 nfs 關閉了﹐或是網路連線出了問題﹐這時候再進行 umount 的話﹐很可能將您的機器‘定格’在那裡哦﹗﹗小心小心~~~ 所以﹐最好在 mount 的時候加上 soft 參數﹐並且在關閉 nfs 伺服器端之前﹐一定要先將所有的 client 所掛載的 mount point 進行 umount 才好進行。

Tips﹕如果 client 機器在啟動的時候能連上網路﹐您還可以直接將掛載寫進 /etc/fstab 檔中呢﹗

如果您遇到問題﹐通常最常見的錯誤信息是﹕

mount: xxxxx:/yyyyyyyy, reason given by server: Permission denied 

造成這樣的原因多數是 /etc/exports 檔案沒設定好的緣故﹐也就是在分享目錄後面的“( )”裡面的權限設定﹐建議從簡單的設定測試起﹐例如 "/tmp *(ro)"。或是從 /var/log/messages 這個檔案找找原因﹐檢查一下被拒絕的原因。

還有﹐您最好確定 client 和 server 的機器名稱已經在 /etc/hosts 被“正確”的設定起來﹐或者能夠通過 DNS 查詢得到(包括正反兩解)。

在我的實踐中﹐‘link_relative’有時候會造成‘Unknown keyword’﹐這樣會引至 nfsd 無法正常啟動﹐測試的時候請留意。

如果您碰到 rpc 相關的錯誤信息﹐例如﹕

mount: RPC: Unable to receive; errno = Connection refused

可能出現的問題很多﹐首先確定 portmap 服務是否有跑起來﹐可以用 rpcinfo 來檢查﹕

rpcinfo -p rh71
如果沒發現用 portmapper 的服務﹐您可以試試將之重新啟動﹕

service portmap restart

不過﹐執行之後﹐請重新啟動 nfs ﹐以及其它所有和 portmap 相關的服務(因為它們會因為 portmap 重啟而失效(最好用 rpcinfo 來確認)。

還有另外的情形﹐可能是 portmap (tcp & udp port 111) 的連線被防火牆擋掉了。或是 xinetd 那邊沒開放 portmap 服務﹐例如在 /etc/hosts.deny 中設定了 "ALL: ALL"﹐那您可以修改 /etc/hosts.allow ﹕

portmap: 192.168.100., .siyongc.domain

還有﹐就是可能 nfs 還沒起來﹐請確定服務能正確跑起來﹐可以用 stop 和 start 或是 rpcinfo 來判斷。

另外﹐當您升級 server 的 kernal 之後﹐最好也將 client 的 kernal 一起同步。否則您會遇到 mount version 的警告﹐不過﹐您還是可以成功的實現 nfs mount 這動作。

有時候﹐您或許會突發興致給電腦改改主機名稱或轉換 domain﹐這樣也容易造成 NFS 在啟動的時候延遲﹐而且是延遲得難以忍受﹗造成這樣的問題可能有多方面的﹐如 hostsname 設定不正確﹐或 DNS 那裡有誤。不過﹐有一個地方您可以考慮的﹐就是把這個檔案內容清一清﹕/var/lib/nfs/rmtab

如果還有問題﹐先熟讀一下 exports 的 man page (man 5 exports)﹐更詳細的就請參考 NFS 的 HOWTO 文件。

設定 NIS

設定 NIS 一點都不難~~ 嘿嘿﹐又來了~~~ ^_^

難的是當它不工作的時候卻不知道問題出在哪裡﹖哈哈﹐廢話~~ ^_^

好了﹐言歸正傳。我們只需指定某一台 Linux 機器做 NIS 伺服器﹐然後其他機器就老實的當 NIS 客戶就好了。如果您的網路較大﹐也可以考慮安裝 Slave NIS 伺服器來分擔 Master NIS 的工作。不過﹐我們這裡只說說 NIS Server 和 Client 的設定﹐Slave NIS 則留給您自己去研究了﹐若有成果的話﹐最好能回來和大家分享分享。

或許﹐您還聽說過 NIS+ 這個名稱﹐它是 NIS 增強版本﹐尤其在網路安全方面有所改善。不過﹐這裡不針對 NIS+ 說明了﹐有興趣的話﹐建議您讀一下 NIS HOWTO 文件。

首先﹐讓我們架設好中央的 NIS 伺服器吧。 (以下步驟是本人實踐之作﹐未必是最佳方法。如果您有更好的主意﹐歡迎 告訴網中人。)

  1. 在設定之前﹐您必須確定網路工作正常﹐例如連線、hosts、xinetd、諸如此類的﹐這應該不用多提了吧。

    再來確定 ypserv 套件有安裝起來(rpm -qa | grep yp)﹐否則用 rpm 安裝。

    執行 ntsysv 將 ypservyppasswdd 選擇起來﹐確定在開機的時候就能抓取到。

  2. 修改 /etc/xined.d 目錄下面的 timetime-udp 兩個檔案﹐確定 "disable = no" 。﹕

  3. 重新啟動 xinetd﹕

    service xinetd restart

  4. 修改 /var/yp/securenets﹐確定有這樣的敘述(請針對您的網路設定做適當修改)﹕

    # Always allow access for localhost
    255.0.0.0       127.0.0.0
    # This line gives access to everybody. PLEASE ADJUST!
    #0.0.0.0		0.0.0.0
    255.255.255.0   192.168.100.0
    

  5. 修改 /etc/ypserv.conf﹐或許會有這樣的敘述﹐(但不是很確定是否必須如此)﹕

    dns: no
    *             : *	: passwd.byname    : port
    

  6. 接下來﹐建立這下面兩個檔案(如果它們不存在的話)﹕
    touch /etc/gshadow /etc/netgroup

  7. 設定 NIS 的domain name﹕

    nisdomainname chen

    註﹕最好起一個有別於目前 domain 的名字﹐這主要是出於安全考量。 您可以將上面這行命令加進 /etc/rc.d/rc.local 裡面 (不過我在實作上﹐發現 server 端不設定 nisdomainname 也可以的﹐不知道是否真的﹖)。 並修改 /etc/sysconfig/network 檔中的句子(不存在則自行建立)﹕

    NISDOMAIN=chen
    

  8. 接下來﹐輸入﹕

    rpcinfo -u localhost ypserv

    確定 ypserv 是工作的﹐您應該會看到這樣的信息﹕

    program 100004 version 1 ready and waiting
    program 100004 version 2 ready and waiting
    

    如果您沒看到﹐那就執行﹕

    service ypserv start

    重複同樣的步驟﹐確定 yppasswdd 也是工作的。並且用 rpcinfo -p localhost 確定 ypserv 和 yppasswdd 均列其上。

  9. 然後初始設定 NIS 服務﹕

    /usr/lib/yp/ypinit -m

    記住要用 Ctrl + D 來結束﹐不是用 Ctrl + C 哦﹐切記切記﹗

    然後輸入 yEnter

    註﹕每次您新增了帳號﹐或修改過 /etc/passwd 檔﹐都要重複這個動作。

    留意一下有否錯誤﹐有則根據信息做適當修改﹐無則繼續。例如﹐如果它回應說 "No rule to mak target xxxxxx, needed by yyyyyyyy."﹐通常是在 /etc 下面找不到檔案而已﹐用 touch /etc/xxxxxxx 就可以解決之。

  10. 重新啟動 ypserver 和 yppasswdd﹕

    service ypserv restart
    service yppasswdd restart

為求保險﹐最好用 rpcinfo 命令來確認一下。就這樣﹐NIS 的 server 就設定好了﹗很容易~~ 沒騙您吧﹖^_^

設定 NIS client

接下來﹐是設定 NIS Client 。這裡是在 mdk.siyongc.domain (192.168.100.24) 這台機器上面設定﹕

  1. 先確定 ypbindyp-tools 套件有安裝起來(rpm -qa | grep yp)﹐否則用 rpm 安裝。並執行 ntsysv﹐確定 ypbind 被選擇了。

  2. 再來執行﹕

    /bin/nisdomainname chen

  3. 然後修改 /etc/yp.conf﹐加進這兩行﹕

    domain chen 
    ypserver rh71.siyongc.domain
    

    註﹕必須確定 client 和 server 的 nisdomain 一致。並修改 /etc/sysconfig/network 檔中的句子(不存在則自行建立)﹕

    NISDOMAIN=chen
    

  4. 修改 /etc/nsswitch﹐修改其中數行﹕

    passwd:	files nis nisplus
    shadow:	files nis nisplus
    group:	files nis nisplus
    

  5. 修改 /etc/passwd﹐在末尾加入﹕

    +::::::	# 就是 + 號後帶六個冒號﹐之間沒空白鍵。
    

  6. 然後啟動 ypbind﹕

    service ypbind restart

如果順利﹐這命令很快就完成﹐要不然要檢查 server 和 client 雙方的設定和連線了。

測試 NIS

接下來﹐就是檢驗勞動成果的時候了。先以 root 身份登入 server﹐並新增一個測試帳號﹕

useradd ypu1
passwd ypu1
cd /var/yp
make

然後轉到客戶端上面以 root 身份登錄﹐並輸入﹕

ypcat passwd

如果順利的話﹐ server 端 UID 大於 500 的帳號都會被列出來。您也可以執行下面命令來確定某帳號是否出現在 NIS 登錄之中﹕

getent passwd ypu1

假如您看不到任何信息回應﹐那麼﹐很可能是前面的步驟(包括伺服器和客戶端)還沒正確完成﹐您則需要找出原因所在。

如果您能得到信息回應﹐例如﹕
ypu1:$1$BzYQtUua$n68UwKiNVDjWS/UJGHFU4/:1001:1001::/home/ypu1:/bin/bash

那是好消息﹗否則您得從頭進行 debug 方好繼續。

當上一步驟過關之後﹐如果您覺得有需要﹐那您可以再修改帳號的 yp 密碼。但這步不是必須的﹐如果您能夠從另外的機器用 NIS 帳號登錄就可以略過此步驟(我建議您不必修改 yp 密碼)。﹕

yppasswd ypu1
Please enter root passwd:
Please enter new passwd:
Please retype password:

注意﹕第一行是 root 密碼﹐最後兩行是設定 yp 的 NIS password。最好和原來的密碼一致﹐因為原來的密碼也會被更改為 nis 的密碼﹐小心﹗(請參考後面的說明)

接著請在本地主機上面建立起該使用者的家目錄﹕

cp -a /etc/skel /home/ypu1
chown -R ypu1.ypu1 /home/ypu1

這樣﹐您就可以使用 NIS 登錄了﹗

當然﹐您也可以設定 Linux 在開機的時候通過 NFS 掛載到使用者原本的家目錄(tips﹕修改 /etc/fstab)。但如何做﹖您自己去嘗試吧﹐這裡暫時賣個關子。不過﹐下面我有更好的提議﹐請不要錯過了哦~~ ^_^

在使用 NIS 的時候﹐您需要注意的地方大致有如下這些﹕

  • 當您有新的使用者增加之後﹐或是執行過 usermod﹐或是修改過 /etc/passwd 檔﹐您要 cd /var/yp 然後執行 make (或重新執行 /usr/lib/yp/ypinit -m) 以更新 nis 資料。但這樣做的結果﹐會將 yp 密碼同步為系統的密碼。如果在 client 端以 root 身份執行 yppasswd 來重設 NIS 帳號的密碼的話﹐新帳號必須已經設定過系統密碼﹐但執行 yppasswd 之後﹐會將系統密碼同步為 yp 密碼。然而有趣的是﹐之後您再於 server 主機上更改原帳號的密碼﹐卻不會影響 NIS 的哦﹐不過 user 在 client 端卻只能用 yppasswd 而不能用 passwd 來修改密碼。

    但這似乎是個矛盾﹕修改了 yp 密碼會改變系統密碼﹐修改系統密碼卻不改變 yp 密碼﹐然後新增帳號後需要同步 nis 帳號﹐卻又把 yp 密碼變回系統密碼﹗真是有點亂~~ 所以﹐所有 NIS 帳號﹐最好避免修改系統密碼。

  • 如果登錄失敗﹐用 rpcinfo 來確定服務﹐可以先在 server 測試 localhost﹐然後到 client 上測試 server 。如果 server 可以而 client 不可以﹐那可能又是防火牆或 xinetd ﹐或是連線的問題了。

  • 其中﹐portmap 也是一個很重要的服務(有些系統會顯示為 rpcbind)﹐在您執行 ypserv 和 yppasswdd 之前﹐要確定它已經被啟動了。如果您需要重啟 portmap ﹐要確定所有基於它的服務也要重新啟動。

  • 同時留意一下 client 和 server 的 NIS domain name 是否一致。

  • 設定 NIS﹐在 server 端牽涉的檔案和服務比較多﹐諸如 rpc、portmap、yp、nsswitch 等等﹐請用 man 命令看看它們的用法﹐例如每個 manual 最後的 SEE ALSO 也不要漏了看。

    我曾經試過一直嘗試 client 那邊的 ypbind 都連不上 server ﹐總得到什麼 "Domain not bound" 的信息。後來也沒改什麼﹐吃完中午飯回來再試一次竟然可以了﹗百思不得其解﹐只是將經驗告訴您﹕有時候﹐退一步海闊天空。

曾和在新聞組上和網友的討論過一篇關於 NIS 的文章﹐我覺得蠻值得參考一下的﹐不妨 點這裡 閱讀。

設定 autofs

當您按照前面的步驟完成了 NFS 和 NIS 一定很興奮吧﹗(有沒有衝動要來信和我分享這份喜悅啊﹖^_^ ) 然而﹐這裡我再教您一個法子﹐讓您 high 到最高點﹗

您在前面的實作中﹐您腦海中是否閃過這些疑問呢﹕

  • 是否覺得要在 client 上面替使用者建立帳號是非常笨拙的動作﹖沒錯﹗這樣做的話﹐很容易造成使用者資料到處亂放﹐給管理上帶來極大的不方面。
  • 您是否想將 user 的 home 也 mount 在 NIS server 上呢﹖好提議﹗或許您已經想到 NFS 了吧。
  • 如何做呢﹖因為 nfs 需要 root 在能執行 mount ﹐要不然還要弄 sudo 讓使用者自己 mount 呢。
  • 有沒更方便的辦法啊﹖哈哈﹐當然有啦﹐就是用 autofs 來解決。

Okay﹐說了這麼多﹐趕快介紹如何設定吧﹕

  1. 首先我們得修改一下 server 那邊的帳號設定﹐其中最重要是關於 home dir 的設定。先讓我們停掉 NFS 服務並且退出所有 NIS 登錄﹐並建立新的 NIS 帳號專用目錄﹕

    service yppasswdd stop
    service ypserv stop
    service nfs stop
    mkdir /home/yphome

  2. 再將 NIS 帳號的 home dir 搬到新的目錄去﹐並修改帳號的內容﹕

    mv /home/ypu1 /home/yphome
    usermod -d /home/yphome/ypu1 ypu1

    其它 NIS 帳號也如法泡制。如果您需要新增加 NIS 帳號﹐請指定其 home dir 的路徑﹐例如﹕

    useradd -d /home/yphome/ypu2 ypu2
    passwd ypu2

  3. 當所有 NIS 帳號修改完畢之後﹐不要忘記更新 NIS 資料庫﹕

    cd /var/yp
    make

    修改 /etc/exports 檔﹐輸出 yphome 目錄﹕

    /home/yphome *.siyongc.domain(rw,no_root_squash) 192.168.100.*(rw,no_root_squash)
    

  4. 完成後重新啟動 nfs 和 nis 服務﹕

    service nfs start
    service ypserv start
    service yppasswdd start

  5. 接下來轉到 client 端。先確定 autofs 套件有安裝起來﹐否則請用 rpm 來解決。然後還要執行 ntsysv 確定 autofs 能在開機的時候被啟動。

  6. 然後修改 /etc/auto.master ﹐加入如下句子﹕

            /home/yphome    /etc/auto.yphome        --timeout=60
    

  7. 根據上面句子中的第二欄設定﹐再建立 /etc/auto.yphome 檔案﹕

            *       -fstype=nfs,bg,soft,intr     rh71:/home/yphome/&
    

  8. 接下來建立 /etc/auto.master 所指定的 mount point ﹕

    mkdir /home/yphome

  9. 最後重新執行 autofs 和 ypbind 服務﹕

    servcie autofs restart
    service ypbind restart

沒錯﹐就醬子而已~~~ 然後您用原來的 ypu1 和新增的 ypu2 帳號登錄﹐看看是否成了﹖

如果您的系統從安裝到核心編譯到網路設定都是根據我的步驟進行的話﹐應該不會有困難。如果有問題﹐那可能是您打錯字(或是我這裡打錯字)的關係而已。不過﹐如果發現 autofs 不成功的話﹐建議先用手工執行 mount 來測試 NFS 連線。

有了以上經驗﹐假如您要將所有 yp user 的郵件信箱也集中在相同的位置上(例如做 mail server load balancing)﹐也不會難倒您才對。具體步驟我不詳說了﹐只點出關鍵要注意的地方﹕

  • 設定 NFS 主機﹐輸出 /var/spool/mail 目錄。
  • 設定所有的 client 主機﹐將 /var/spool/mail 掛載到 NFS 主機上(可以修改 /etc/fstab 設定)。
  • 如果您要將整個 client 系統的帳號都轉用 NIS 帳號的話﹐那可以將整個 /home 和 /var/spool/mail 掛到 NFS 上﹐那就無需建什麼 yphome 了。
  • 不過﹐有些關於主機本身的資料﹐例如 root 郵件 ﹐就不知道如何獨立出來了。或許需要修改 email 程式﹐但我暫時還找不到好方法。

事實上﹐善用 NFS、NIS、和 autofs 可以營造的網路空間是非常廣闊的﹐這些需要您自己發揮創意了。有什麼好點子的話﹐隨時歡迎來信討論和大家分享。

 

 


www.study-area.org © 2001 Netman 網中人
Last Updated: March 17, 2003