【轉貼】Linux 架站文件_ 2 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=big5" http-equiv=Content-Type>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<!-------------------------- net function -----------------------> 發揮網路功能 當您的 Linux 主機安裝好並連上網路之後﹐那麼很自然會進行遠端操作吧。最常用的服務就是 telnet 了﹐它可以讓您從一台機器登錄到另外一台機器﹐然後完成所有遠端的作業。使用 telnet ﹐有點像“網路基礎”中的“Telecommunication”那裡所說的 remote control ﹐也就是﹐您可以利用其他機器鍵盤和熒幕遠端使用 Linux 主機。如果您使用 Windows 98 連接 Linux 的話﹕ 按 ‘開始’--> ‘執行’--> 然後輸入﹕ telnet 192.168.100.23 (如果 dns 或 hosts 檔案設定好了﹐可以輸入機器名稱)﹐您就會看到一個登錄畫面了﹐不過﹐先別急著輸入您的大名和密碼﹐做做下面的動作﹕
然後再進行登錄不遲。為什麼這樣做﹖我也不知道啦﹐本來我用以前的 Redhat 好好的﹐但後來換了 Redhat 6.0 之後﹐只要進入 vi 等文書編輯器﹐方向鍵就不聽使喚了﹐只有做了上面動作才可以。後來發現﹐只要在 /etc/bashrc 檔案裡面加下面這一行就解決了﹕
然而﹐在 RH7.1 上面預設是將 telnet 功能關閉的﹐您得修改 /etc/xinetd.d/telnet 裡面的設定﹐設定 disable = no 才可以提供 telnet 服務。不過﹐系統之所以要關閉 telnet ﹐是因為它在網路上使用明碼(clear text) 方式傳送數據的緣故。為此﹐在 RH7.1 上面使用 ssh 服務來取代 telnet 服務﹐只是再提醒您一次﹕能用 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 的強大網路功能而目瞪口呆﹗ 先將我的網路環境說說吧(您可以參考上一章所介紹的環境)﹕
設定 NFS 請先確定 nfs-utils 套件有裝起來(rpm -qa | grep nfs)﹐如果沒有﹐請用 rpm 安裝。假如需要在一開機的時候就啟動 nfs 服務的話﹐那就用 ntsysv 將 nfs 選起來吧。喜歡的話﹐把 nfslock 也一並開啟也無妨(請 man lockd)。 事實上﹐要設定 NFS 一點都不難﹐關鍵是 server 那端﹕/etc/exports 這個檔案。在真正動手設定之前﹐我建議您先看看它的 manual ﹕
請小心設定這個檔﹐如果設定錯誤了﹐以後重新開機的時候您可就得非常不耐煩了。我是這樣設定﹕﹕
第一行﹐我將 /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)。 完成 exports 設定後﹐就是重新啟動 nfsd ﹕
哦﹐我不建議您用 restart 來進行﹐最好用 stop 和 start ﹐並且重複兩次﹐確定在第二次 stop 的時候﹐沒看到紅色的 [ FAILED ] 信息。因為我發現如果設定不正確﹐就算您執行 start ﹐也看到了四個 [ OK] ﹐但事實上未必真的成功跑起來﹐只能在 stop 的時候才能發現。另外一個原因是﹕如果設定錯誤﹐很可能導致 nfs 在啟動的時候要等非常久的時間﹐這是不勝其煩的﹐尤其在開機的時候。所以﹐當您每次修改完 nfs 的設定﹐一定要 stop 再 start 看看﹐沒問題才關機﹐否則下次開機可要培養耐性了。
假如有錯誤的話﹐應該會得到提示的。 為求確定﹐您最好執行﹕
如果這個命令不能正確顯示您所 export 的內容﹐那就重新檢查設定步驟吧。 <!-------------------- nfs test -------------------------> 測試 NFS 一但 server 設定好之後﹐您只需在 client 端建立 mount point﹐然後用 mount 命令來掛載即可。不過﹐mount 之前最好用 showmount 來確定一下﹕
當 showmount 能順利找到 server 的 exports 之後﹐那就可以放心 mount 了﹕
然後﹐就好像自己的硬碟一樣使用~~ ^_^ 要卸載它﹐用 umount 命令就可以。不過﹐如果沒有那些 -o 參數﹐然後在卸載之前您將 server 的 nfs 關閉了﹐或是網路連線出了問題﹐這時候再進行 umount 的話﹐很可能將您的機器‘定格’在那裡哦﹗﹗小心小心~~~ 所以﹐最好在 mount 的時候加上 soft 參數﹐並且在關閉 nfs 伺服器端之前﹐一定要先將所有的 client 所掛載的 mount point 進行 umount 才好進行。 如果您遇到問題﹐通常最常見的錯誤信息是﹕
造成這樣的原因多數是 /etc/exports 檔案沒設定好的緣故﹐也就是在分享目錄後面的“( )”裡面的權限設定﹐建議從簡單的設定測試起﹐例如 "/tmp *(ro)"。或是從 /var/log/messages 這個檔案找找原因﹐檢查一下被拒絕的原因。 還有﹐您最好確定 client 和 server 的機器名稱已經在 /etc/hosts 被“正確”的設定起來﹐或者能夠通過 DNS 查詢得到(包括正反兩解)。 在我的實踐中﹐‘link_relative’有時候會造成‘Unknown keyword’﹐這樣會引至 nfsd 無法正常啟動﹐測試的時候請留意。 如果您碰到 rpc 相關的錯誤信息﹐例如﹕
可能出現的問題很多﹐首先確定 portmap 服務是否有跑起來﹐可以用 rpcinfo 來檢查﹕
不過﹐執行之後﹐請重新啟動 nfs ﹐以及其它所有和 portmap 相關的服務(因為它們會因為 portmap 重啟而失效(最好用 rpcinfo 來確認)。 還有另外的情形﹐可能是 portmap (tcp & udp port 111) 的連線被防火牆擋掉了。或是 xinetd 那邊沒開放 portmap 服務﹐例如在 /etc/hosts.deny 中設定了 "ALL: ALL"﹐那您可以修改 /etc/hosts.allow ﹕
還有﹐就是可能 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 設定 NIS 一點都不難~~ 嘿嘿﹐又來了~~~ ^_^ 難的是當它不工作的時候卻不知道問題出在哪裡﹖哈哈﹐廢話~~ ^_^ 好了﹐言歸正傳。我們只需指定某一台 Linux 機器做 NIS 伺服器﹐然後其他機器就老實的當 NIS 客戶就好了。如果您的網路較大﹐也可以考慮安裝 Slave NIS 伺服器來分擔 Master NIS 的工作。不過﹐我們這裡只說說 NIS Server 和 Client 的設定﹐Slave NIS 則留給您自己去研究了﹐若有成果的話﹐最好能回來和大家分享分享。 或許﹐您還聽說過 NIS 這個名稱﹐它是 NIS 增強版本﹐尤其在網路安全方面有所改善。不過﹐這裡不針對 NIS 說明了﹐有興趣的話﹐建議您讀一下 NIS HOWTO 文件。 首先﹐讓我們架設好中央的 NIS 伺服器吧。 (以下步驟是本人實踐之作﹐未必是最佳方法。如果您有更好的主意﹐歡迎 ?subject=nis setup">告訴網中人。)
為求保險﹐最好用 rpcinfo 命令來確認一下。就這樣﹐NIS 的 server 就設定好了﹗很容易~~ 沒騙您吧﹖^_^ <!-------------------------- nis client -------------------------> 設定 NIS client 接下來﹐是設定 NIS Client 。這裡是在 mdk.siyongc.domain (192.168.100.24) 這台機器上面設定﹕
如果順利這命令很快就完成﹐要不然要檢查 server 和 client 雙方的設定和連線了。 <!-------------------------- nis test -------------------------> 測試 NIS 接下來﹐就是檢驗勞動成果的時候了。先以 root 身份登入 server﹐並新增一個測試帳號﹕
然後轉到客戶端上面以 root 身份登錄﹐並輸入﹕
如果順利的話﹐ server 端 UID 大於 500 的帳號都會被列出來。您也可以執行下面命令來確定某帳號是否出現在 NIS 登錄之中﹕
假如您看不到任何信息回應﹐那麼﹐很可能是前面的步驟(包括伺服器和客戶端)還沒正確完成﹐您則需要找出原因所在。 如果您能得到信息回應﹐例如﹕
那是好消息﹗否則您得從頭進行 debug 方好繼續。 當上一步驟過關之後﹐如果您覺得有需要﹐那您可以再修改帳號的 yp 密碼。但這步不是必須的﹐如果您能夠從另外的機器用 NIS 帳號登錄就可以略過此步驟(我建議您不必修改 yp 密碼)。﹕
注意﹕第一行是 root 密碼﹐最後兩行是設定 yp 的 NIS password。最好和原來的密碼一致﹐因為原來的密碼也會被更改為 nis 的密碼﹐小心﹗(請參考後面的說明) 接著請在本地主機上面建立起該使用者的家目錄﹕
這樣﹐您就可以使用 NIS 登錄了﹗ 當然﹐您也可以設定 Linux 在開機的時候通過 NFS 掛載到使用者原本的家目錄(tips﹕修改 /etc/fstab)。但如何做﹖您自己去嘗試吧﹐這裡暫時賣個關子。不過﹐下面我有更好的提議﹐請不要錯過了哦~~ ^_^ 在使用 NIS 的時候﹐您需要注意的地方大致有如下這些﹕
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |