<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 14.1 NIS 的由來與功能 ## 14.1 NIS 的由來與功能 在一個大型的網域當中,如果有多部 Linux 主機,萬一要每部主機都需要設定相同的賬號與密碼時,你該怎么辦?復制 /etc/passwd ?應該沒有這么呆吧?如果能夠有一部賬號主控服務器來管理網域中所有主機的賬號, 當其他的主機有用戶登入的需求時,才到這部主控服務器上面要求相關的賬號、密碼等用戶信息, 如此一來,如果想要增加、修改、刪除用戶數據,只要到這部主控服務器上面處理即可, 這樣就能夠降低重復設定使用者賬號的步驟了。 這樣的功能有很多的服務器軟件可以達成,這里我們要介紹的則是 Network Information Services (NIS server) 這個服務器軟件喔!底下就先來談一談這個 NIS 的相關功能吧! **Tips:** NIS 主要提供的是用戶的賬號、密碼、家目錄文件名、UID等信息,但 NIS 并沒有提供文件系統。同時, NIS 同樣使用前一章談到的 RPC 服務器,因此在本章開始前,你還是得要認識一下[第十三章談到的 NFS 與 RPC](http://linux.vbird.org/linux_server/0330nfs.php), 同時你還得要知道基礎學習篇第三版里面的[第十四章賬號管理](http://linux.vbird.org/linux_basic/0410accountmanager.php), 同時也得了解一下基礎學習篇[第二十二章 make/Makefile](http://linux.vbird.org/linux_basic/0520source_code_and_tarball.php) 的信息才好。 ![](https://box.kancloud.cn/2016-05-13_5735736501917.gif) - - - - - - ### 14.1.1 NIS 的主要功能:管理帳戶信息 通常我們都會建議,一部 Linux 主機的功能越單純越好,也就是說,一部 Linux 就專門進行一項服務。這樣有許多的好處,這包含功能單純所以系統資源得以完整運用, 并且在發生入侵或者是系統產生狀況的時候,也比較容易追查問題所在。因此,一個公司內部常常會有好幾部 Linux 主機,有的專門負責 WWW 、有的專門負責 Mail 、有的專門負責 SAMBA 等等的服務。 不過,這樣雖然有分散風險、容易追蹤問題的好處,但是,由于是同一個公司內的多部主機,所以事實上所有的 Linux 主機的賬號與密碼都是一樣的!哇!那如果公司里面有 100 的人的話, 我們就需要針對這么多部的主機去設定賬號密碼了!而且,如果未來還有新進員工的話, 那么光是設定密碼就會使系統管理員抓狂了! 這個時候,讓我們換一個角度來思考:如果我設計了一部專門管理賬號與密碼的服務器,而其他的 Linux 主機當有客戶端要登入的時候,就必須要到這部管理密碼的服務器來查尋用戶的賬號與密碼, 如此一來,我要管理所有的 Linux 主機的賬號與密碼,只要到那部主服務器上面去進行設定即可! 包括新進人員的設定,反正其他的 Linux 主機都是向它查尋的嘛!沒錯!真是好~這個就是 Network Information Service, NIS 服務器的主要功能啦! 事實上,Network Information Service 最早應該是稱為 Sun Yellow Pages (簡稱 yp),也就是 Sun 這家公司出的一個名為 Yellow Pages 的服務器軟件,請注意, NIS 與 YP 是一模一樣的咚咚喔!這個 Yellow Pages 名字取的真是好!怎么說呢?知道黃頁 (Yellow Pages) 是什么嗎?就是我們家里的電話簿啦! 今天如果你要查尋一家廠商的電話號碼,通常就是直接去查黃頁上面的紀錄來取得電話號碼啊!而這個 NIS 也一樣,當使用者要登入時, Linux 系統就會到 NIS 服務器上面去找尋這個使用的賬號與密碼信息來加以比對, 以提供使用者登入之用的檢驗啊!很棒吧! ^\_^ 那么 NIS 服務器提供了哪些信息呢?還記得賬號與密碼放置在哪里吧?NIS 就是提供那些數據啦! 主要有底下這些基本的數據提供給有登入需求的主機喔: 服務器端文件名 檔案內容/etc/passwd 提供用戶賬號、UID、GID、家目錄所在、Shell 等等/etc/group 提供群組數據以及 GID 的對應,還有該群組的加入人員/etc/hosts 主機名與 IP 的對應,常用于 private IP 的主機名對應/etc/services 每一種服務 (daemons) 所對應的埠口 (port number)/etc/protocols 基礎的 TCP/IP 封包協定,如 TCP, UDP, ICMP 等/etc/rpc 每種 RPC 服務器所對應的程序號碼/var/yp/ypservers NIS 服務器所提供的數據庫至少可以提供上述這些功能,當然啦,你也可以自行定義哪些數據庫需要,哪些數據庫不需要! - - - - - - ### 14.1.2 NIS 的運作流程:透過 RPC 服務 由于 NIS 服務器主要是提供用戶登入的信息給客戶端主機來查詢之用,所以, NIS 服務器所提供的數據當然就需要用到傳輸與讀寫比較快速的 "數據庫" 文件系統, 而不是傳統的純文本數據。為了要達到這個目的,所以 NIS 服務器就必須要將前一小節提到的那些檔案制作成為數據庫檔案, 然后使用網絡協議讓客戶端主機來查詢啰。至于所使用的通訊協議與前一章的 [NFS](http://linux.vbird.org/linux_server/0330nfs.php) 相同,都使用遠程過程調用 (RPC) 這個玩意兒喔! 此外,如果在一個很大型的網域里面,萬一所有的 Linux 主機都向同一部 NIS 服務器要求用戶數據時, 這部 NIS 服務器的負載 (loading) 可能會過大。甚至如果考慮到數據使用的風險, 要是這單一的一部 NIS 服務器掛點時,那其他的 Linux 主機還要不要讓 users 登入啊? 所以啰,在較為大型的企業環境當中, NIS 服務器可以使用 master/slave (主控/輔助服務器) 架構的。 Master NIS 服務器提供系統管理者制作的數據庫, slave 則取得來自 master 的數據,并藉以提供其他客戶端的查詢。 客戶端可以向整個網域要求用戶資料的響應,master 與 slave 皆可回答, 由于 slave 的數據來自于 master ,所以用戶賬號數據本身是同步的! 如此一方面可以分散 NIS 服務器的負載,而且也可以避免因 NIS 服務器掛點而導致的無法登入的風險。 ![](https://box.kancloud.cn/2016-05-13_5735da7254ca0.png) 圖 14.1-1、NIS 服務器與客戶端的運作與查詢方式示意圖 整個 NIS 的運作就如同上圖,首先必須要有 NIS server 的存在,之后才會有 NIS Client 的存在。 那么當使用者有登入的需求時,整個 NIS 的運作程序是: - 關于 NIS Server (master/slave) 的運作程序: 1. NIS Master 先將本身的賬號密碼相關檔案制作成為數據庫檔案; 2. NIS Master 可以主動的告知 NIS slave server 來更新; 3. NIS slave 亦可主動的前往 NIS master server 取得更新后的數據庫檔案; 4. 若有賬號密碼的異動時,需要重新制作 database 與重新同步化 master/slave。 - 關于當 NIS Client 有任何登入查詢的需求時: 1. NIS client 若有登入需求時,會先查詢其本機的 /etc/passwd, /etc/shadow 等檔案; 2. 若在 NIS Client 本機找不到相關的賬號數據,才開始向整個 NIS 網域的主機廣播查詢; 3. 每部 NIS server (不論 master/slave) 都可以響應,基本上是『先響應者優先』。 從上面的流程當中,你會發現 NIS client 還是會先針對本機的賬號數據進行查詢,若本機查不到時才到 NIS server 上頭尋找。因此,如果你的 NIS client 本身就有很多一般使用者的賬號時,那跟 NIS server 所提供的賬號就可能產生一定程度的差異啰!所以,一般來說,在這樣的環境下,NIS client 或 NIS slave server 會主動拿掉自己本機的一般使用者賬號,僅會保留系統所需要的 root 及系統賬號而已。 如此一來,一般使用者才都會經由 NIS master server 所控管啊! ^\_^ 根據上面[圖 14.1-1](#fig14.1-1) 的說明,我們的 NIS 環境大致上需要設定的基本組件就有: - NIS Master server :將檔案建置成數據庫,并提供 slave server 來更新; - NIS Slave server :以 Master server 的數據庫作為本身的數據庫來源; - NIS client :向 master/server 要求登入者的驗證數據。 就如同上面提到的,在大型環境中才會使用到這么復雜的 NIS master/slave 架構。因此,本章僅會介紹 NIS Master 的建置, 以及 NIS client 的設定而已。其實,NIS 服務使用的環境大概越來越僅局限在學術數值模式仿真的叢集計算機架構中 (PC cluster), 在那樣的架構中,老實說,鳥哥認為僅要學會 NIS master 即可。如果還有其他賬號方面的要求,例如跨平臺的帳戶信息提供, 那可能就得要參考 Samba 或更進階的 LDAP 才好呦!這里我們不談啦~現在,就讓我們開始來玩一玩這個 NIS 的設定吧! - - - - - -
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看