鸟哥的Linux私房菜(服务器)- 第十四章、账号控管: NIS 服务器
最近更新日期:2011/07/28
| 有沒有想過,如果我有十部 Linux 主機,這十部主機僅負責不同的功能,事實上,所有的主機賬號與對應的密碼都相同! 那么我是將賬號與密碼分別設定置在十部計算機上面,還是可以透過一部主機做為賬號管理的功能,然后其他的主機只要當用戶用登入時, 就必須要到管理賬號的主機上面確認其賬號與密碼呢?哪一個比較方便而且靈活?當然是找一個賬號管理的主機比較方便的多啦! 如果有用戶要修改密碼,不必要去到十部主機修改密碼啦!只要到主要管理主機去修改,其他的主機根本就不需要更動! 哈哈!輕松又愉快呢!這個功能的達成有很多的方式,在這里,我們介紹一個很簡單的方式,那就是 Network Information Service 這個 NIS 服務器的架設啦! |
14.1?NIS 的由來與功能
14.1.1?NIS 的主要功能:管理帳戶信息
14.1.2?NIS 的運作流程:透過 RPC 服務
14.2?NIS server 端的設定
14.2.1?所需要的軟件
14.2.2?NIS 服務器相關的配置文件
14.2.3?一個實作案例
14.2.4?NIS master 的設定與啟動
14.2.5?防火墻設置
14.3?NIS client 端的設定
14.3.1?NIS client 所需軟件與軟件結構
14.3.2?NIS client 的設定與啟動
14.3.3?NIS client 端的檢驗:?yptest,?ypwhich,?ypcat
14.3.4?使用者參數修改: yppasswd, ypchfn, ypchsh
14.4?NIS 搭配 NFS 的設定在叢集計算機上的應用
14.5?重點回顧
14.6?課后練習
14.7?參考數據與延伸閱讀
14.8?針對本文的建議:http://phorum.vbird.org/viewtopic.php?p=115269
14.1 NIS 的由來與功能
在一個大型的網域當中,如果有多部 Linux 主機,萬一要每部主機都需要設定相同的賬號與密碼時,你該怎么辦?復制 /etc/passwd ?應該沒有這么呆吧?如果能夠有一部賬號主控服務器來管理網域中所有主機的賬號, 當其他的主機有用戶登入的需求時,才到這部主控服務器上面要求相關的賬號、密碼等用戶信息, 如此一來,如果想要增加、修改、刪除用戶數據,只要到這部主控服務器上面處理即可, 這樣就能夠降低重復設定使用者賬號的步驟了。
這樣的功能有很多的服務器軟件可以達成,這里我們要介紹的則是?Network Information Services (NIS server)?這個服務器軟件喔!底下就先來談一談這個 NIS 的相關功能吧!
| Tips: NIS 主要提供的是用戶的賬號、密碼、家目錄文件名、UID等信息,但 NIS 并沒有提供文件系統。同時, NIS 同樣使用前一章談到的 RPC 服務器,因此在本章開始前,你還是得要認識一下第十三章談到的 NFS 與 RPC, 同時你還得要知道基礎學習篇第三版里面的第十四章賬號管理, 同時也得了解一下基礎學習篇第二十二章 make/Makefile?的信息才好。 |
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?相同,都使用遠程過程調用 (RPC) 這個玩意兒喔!
此外,如果在一個很大型的網域里面,萬一所有的 Linux 主機都向同一部 NIS 服務器要求用戶數據時, 這部 NIS 服務器的負載 (loading) 可能會過大。甚至如果考慮到數據使用的風險, 要是這單一的一部 NIS 服務器掛點時,那其他的 Linux 主機還要不要讓 users 登入啊? 所以啰,在較為大型的企業環境當中,?NIS 服務器可以使用 master/slave (主控/輔助服務器) 架構的。
Master NIS 服務器提供系統管理者制作的數據庫, slave 則取得來自 master 的數據,并藉以提供其他客戶端的查詢。 客戶端可以向整個網域要求用戶資料的響應,master 與 slave 皆可回答, 由于 slave 的數據來自于 master ,所以用戶賬號數據本身是同步的! 如此一方面可以分散 NIS 服務器的負載,而且也可以避免因 NIS 服務器掛點而導致的無法登入的風險。
圖 14.1-1、NIS 服務器與客戶端的運作與查詢方式示意圖
整個 NIS 的運作就如同上圖,首先必須要有 NIS server 的存在,之后才會有 NIS Client 的存在。 那么當使用者有登入的需求時,整個 NIS 的運作程序是:
- 關于 NIS Server (master/slave) 的運作程序:
- NIS Master 先將本身的賬號密碼相關檔案制作成為數據庫檔案;
- NIS Master 可以主動的告知 NIS slave server 來更新;
- NIS slave 亦可主動的前往 NIS master server 取得更新后的數據庫檔案;
- 若有賬號密碼的異動時,需要重新制作 database 與重新同步化 master/slave。
- 關于當 NIS Client 有任何登入查詢的需求時:
- NIS client 若有登入需求時,會先查詢其本機的 /etc/passwd, /etc/shadow 等檔案;
- 若在 NIS Client 本機找不到相關的賬號數據,才開始向整個 NIS 網域的主機廣播查詢;
- 每部 NIS server (不論 master/slave) 都可以響應,基本上是『先響應者優先』。
從上面的流程當中,你會發現 NIS client 還是會先針對本機的賬號數據進行查詢,若本機查不到時才到 NIS server 上頭尋找。因此,如果你的 NIS client 本身就有很多一般使用者的賬號時,那跟 NIS server 所提供的賬號就可能產生一定程度的差異啰!所以,一般來說,在這樣的環境下,NIS client 或 NIS slave server 會主動拿掉自己本機的一般使用者賬號,僅會保留系統所需要的 root 及系統賬號而已。?如此一來,一般使用者才都會經由 NIS master server 所控管啊! ^_^
根據上面圖 14.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 的設定吧!
14.2 NIS Server 端的設定
NIS 服務器端主要在于提供數據庫給客戶端作為驗證之用,雖然 NIS 服務器類型有 Master 與 Slave , 不過鳥哥這里介紹的并不是大型企業環境,因此僅介紹 NIS master 的設定而已啦~那就來設定看看啰!
14.2.1 所需要的軟件
由于 NIS 服務器需要使用 RPC 協議,且 NIS 服務器同時也可以當成客戶端,因此它需要的軟件就有底下這幾個:
- yp-tools :提供 NIS 相關的查尋指令功能
- ypbind ??:提供 NIS Client 端的設定軟件
- ypserv ??:提供 NIS Server 端的設定軟件
- rpcbind ?:就是 RPC 一定需要的數據啊!
如果你是使用 Red Hat 的系統,例如我們的 CentOS 6.x 的話,那你可以利用『 rpm -qa | grep '^yp' 』 來檢查是否有安裝上述的軟件。一般來說 yp-tools, ypbind 都會主動的安裝,不過 ypserv 可能就不會安裝了。 此時建議你直接使用『?yum?install ypserv 』來安裝吧!立刻就裝好了。底下立刻來設定啰!
14.2.2 NIS 服務器相關的配置文件
在 NIS 服務器上最重要的就是 ypserv 這個軟件了,但是,由于 NIS 設定時還會使用到其他網絡參數設定數據, 因此在配置文件方面需要有底下這些數據喔:
- /etc/ypserv.conf:這是最主要的 ypserv 軟件所提供的配置文件,可以規范 NIS 客戶端是否可登入的權限。
- /etc/hosts:由于 NIS server/client 會用到網絡主機名與 IP 的對應,因此這個主機名對應檔就顯的相當重要!每一部主機名與 IP 都需要記錄才行!
- /etc/sysconfig/network:可以在這個檔案內指定 NIS 的網域 (nisdomainname)。
- /var/yp/Makefile:前面不是說賬號數據要轉成數據庫文件嗎? 這就是與建立數據庫有關的動作配置文件;
至于 NIS 服務器提供的主要服務方面有底下兩個:
- /usr/sbin/ypserv:就是 NIS 服務器的主要提供服務;
- /usr/sbin/rpc.yppasswdd:提供額外的 NIS 客戶端之用戶密碼修改服務, 透過這個服務, NIS 客戶端可以直接修改在 NIS 服務器上的密碼。相關的使用程序則是 yppasswd 指令;
與賬號密碼的數據庫有關的指令方面有底下幾個:
- /usr/lib64/yp/ypinit:建立數據庫的指令,非常常用 (在 32 位的系統下,文件名則是 /usr/lib/yp/ypinit 喔!);
- /usr/bin/yppasswd:與 NIS 客戶端有關,主要在讓用戶修改服務器上的密碼。
14.2.3 一個實作案例
如果你有觀察過圖 14.1-1?的話,你會發現到我們的 NIS 需要設定 Master/Slave 及 client 等, 不過我們這里僅介紹 NIS master server 與 NIS client 兩個組件而已,如果你有需要額外的 slave 的話, 再請查閱 NIS 官網的介紹啰。底下鳥哥先擬一個簡單的案例,做完案例我們再來談談實際可能會使用于叢集計算機的案例吧!
- NIS 的域名為 vbirdnis
- 整個內部的信任網域為 192.168.100.0/24
- NIS master server 的 IP 為 192.168.100.254 ,主機名為 www.centos.vbird
- NIS client 的 IP 為 192.168.100.10,主機名為 clientlinux.centos.vbird
底下我們就一個一個來設定吧!
14.2.4 NIS server 的設定與啟動
NIS 服務器的設定真是很簡單,首先,你必須要在 NIS 服務器上面搞定你的賬號與密碼相關數據, 這包括 /etc/passwd, /etc/shadow, /etc/hosts, /etc/group .... 等等,都得要先搞定才行! 詳細的賬號相關資料請參考基礎篇的第十四章賬號管理。 等到搞定之后你就可以繼續 NIS 服務器的設定了:
-
1. 先設定 NIS 的域名 (NIS domain name)
NIS 是會分領域名 (domain name) 來分辨不同的賬號密碼數據的,因此你必須要在服務器與客戶端都指定相同的 NIS 領域名才行。設定這個 NIS 領域名的動作很簡單,就直接編輯 /etc/sysconfig/network 即可!如下所示:
| [root@www ~]# vim /etc/sysconfig/network # 不要更改其他既有數據,只要加入底下這幾行即可: NISDOMAIN=vbirdnis <==設定 NIS 領域名 YPSERV_ARGS="-p 1011" <==設定 NIS 每次都啟動在固定的埠口 |
當然,你也可以使用手動的方式暫時設定好你的 NIS 領域名,透過的方法就是 nisdomainname 這個指令。 (其實 nisdomainname 與 ypdomainname 及 domainname 都是一模一樣的指令啦!你只要記住一個指令名稱即可。請自行 man domainname 吧!)不過,這個指令現在大概只用來檢查設定是否正確,因為啟動 NIS 服務器時,服務器去捉取的數據就是從 network 這個檔案里面捉取的!所以只要改這個配置文件即可啊!
另外,由于未來想使用 iptables 直接管理 NIS 的使用,因此我們想要控制 NIS 啟動在固定的埠口上。此時, 就使用『YPSERV_ARGS="-p 1011"』這個設定值來固定埠口在 1011 吧!
-
2. 主要配置文件 /etc/ypserv.conf
這個配置文件就是 NIS 服務器最主要的配置文件啦!內容其實很簡單,你可以保留默認值即可。不過,也可以作一些更動啦!
| [root@www ~]# vim /etc/ypserv.conf dns: no # NIS 服務器大多使用于內部局域網絡,只要有 /etc/hosts 即可,不用 DNS 啦files: 30 # 預設會有 30 個數據庫被讀入內存當中,其實我們的賬號檔案并不多,30 個夠用了。xfr_check_port: yes # 與 master/slave 有關,將同步更新的數據庫比對所使用的端口,放置于 <1024 內。# 底下則是設定限制客戶端或 slave server 查詢的權限,利用冒號隔成四部分: # [主機名/IP] : [NIS域名] : [可用數據庫名稱] : [安全限制] # [主機名/IP] :可以使用 network/netmask 如 192.168.100.0/255.255.255.0 # [NIS域名] :例如本案例中的 vbirdnis # [可用數據庫名稱]:就是由 NIS 制作出來的數據庫名稱; # [安全限制] :包括沒有限制 (none)、僅能使用 <1024 (port) 及拒絕 (deny) # 一般來說,你可以依照我們的網域來設定成為底下的模樣: 127.0.0.0/255.255.255.0 : * : * : none 192.168.100.0/255.255.255.0 : * : * : none * : * : * : deny # 星號 (*) 代表任何數據都接受的意思。上面三行的意思是,開放 lo 內部接口、 # 開放內部 LAN 網域,且杜絕所有其他來源的 NIS 要求的意思。# 還有一個簡單作法,你可以先將上面三行批注,然后加入底下這一行即可: * : * : * : none |
由于鳥哥習慣在內部網域并不設定比較嚴格的限制,因此通常鳥哥都是選擇使用『 * : * : * : none 』那個設定值! 然后透過 iptables 來管控可使用的來源就是了。當然,你可以依據你的需求來設定啦!
-
3. 設定主機名與 IP 的對應 (/etc/hosts)
在 /etc/ypserv.conf 的設定當中我們談到 NIS 大部分是給局域網絡內的主機使用的,所以當然就不需要 DNS 的設定了。不過,由于 NIS 使用到很多的主機名,但是網絡聯機透過的是 IP 啊!所以你一定要設定好 /etc/hosts 里面的主機名與 IP 的對應,否則會無法成功聯機 NIS !這個很重要,絕大部分的朋友無法達成 NIS server/client 的聯機都是這里出問題而已。 依據本案例的設定值,你應該這樣做:
| [root@www ~]# vim /etc/hosts # 原本就有的 localhost 與 127.0.0.1 之類的設定都不要更動,只要新增數據: 192.168.100.254 www.centos.vbird 192.168.100.10 clientlinux.centos.vbird[root@www ~]# hostname www.centos.vbird # 再做個確認,確定輸出的主機名與本機 IP 確實有寫入 /etc/hosts 喔! |
注意!如果你的主機名 (hostname) 與 NIS 的主機名不一樣,那么在這個檔案當中還是需要將你的主機名給他設定進來! 否則在后面數據庫的設定時,肯定會發生問題。當然啦,你也可以直接在 /etc/sysconfig/network 當中直接重新設定主機名,然后重新啟動,或者是利用 hostname 這個指令重新設定你的主機名也可以。
-
4. 啟動與觀察所有相關的服務
接下來當然是先啟動所有相關的服務啰,這包括 RPC, ypserv 以及 yppasswdd 啰!不過,如果你的 RPC 本來就已經啟動的話,那就不要重新啟動 rpcbind 了!此外,為了也讓 yppasswdd 啟動在固定的埠口,方便防火墻的管理, 因此,我們也建議你可以設定一下 /etc/sysconfig/yppasswdd 喔!
| [root@www ~]# vim /etc/sysconfig/yppasswdd YPPASSWDD_ARGS="--port 1012" <==找到這個設定值,修改一下內容成這樣![root@www ~]# /etc/init.d/ypserv start [root@www ~]# /etc/init.d/yppasswdd start [root@www ~]# chkconfig ypserv on [root@www ~]# chkconfig yppasswdd on |
注意,主要的 NIS 服務是 ypserv ,不過,如果要提供 NIS 客戶端的密碼修改功能的話, 最好還是得要啟動 yppasswdd 這個服務才好。在啟動完畢后,我們可以利用 rpcinfo 來檢查看看:
| [root@www ~]# rpcinfo -p localhostprogram vers proto port service100000 4 tcp 111 portmapper100000 4 udp 111 portmapper100004 2 udp 1011 ypserv100004 1 udp 1011 ypserv100004 2 tcp 1011 ypserv100004 1 tcp 1011 ypserv100009 1 udp 1012 yppasswdd # 其他不相干的 RPC 鳥哥將它拿掉了,與 NIS 有關的至少要有上面這幾個!要仔細看, # 看看埠口是否為我們規定的 1011, 1012 ,若不是的話,得要修改一下配置文件。[root@www ~]# rpcinfo -u localhost ypserv program 100004 version 1 ready and waiting program 100004 version 2 ready and waiting |
很多時候,很多朋友在設定完 NIS 后又回去設定 NFS 了,結果看了前一章的介紹,竟然又重新啟動 rpcbind , 這將導致 ypserv 的注冊數據被注銷掉。因此,使用上述的動作來檢查看看服務有沒有在等待中, 要看到如上的『就緒并等待服務』才會是正常的呦!
-
5. 處理賬號并建立數據庫
在完成了上面的所有步驟后,接下來我們得要開始將主機上面的賬號檔案轉成數據庫檔案啦! 不過,因為擔心與 NIS 客戶端的賬號有沖突,加上之前我們已經建立過一些賬號了。所以,這里我們建立三個新賬號, 分別是 nisuser1, nisuser2, nisuser3 。不過賬號主要是依據 UID 來判斷的啊!因此,我們使用大于 1000 的 UID 來建立這三個賬號喔!
| [root@www ~]# useradd -u 1001 nisuser1 [root@www ~]# useradd -u 1002 nisuser2 [root@www ~]# useradd -u 1003 nisuser3 [root@www ~]# echo password | passwd --stdin nisuser1 [root@www ~]# echo password | passwd --stdin nisuser2 [root@www ~]# echo password | passwd --stdin nisuser3 |
接下來,將建立的帳密數據轉成數據庫吧!轉換的動作直接透過 /usr/lib64/yp/ypinit 這個指令來處理即可!整個步驟是這樣做的:
| [root@www ~]# /usr/lib64/yp/ypinit -mAt this point, we have to construct a list of the hosts which will run NIS servers. www.centos.vbird is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>.next host to add: www.centos.vbird <==系統根據主機名自動捉取next host to add: <==這個地方按下 [crtl]-d The current list of NIS servers looks like this:www.centos.vbirdIs this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/vbirdnis/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory `/var/yp/vbirdnis' Updating passwd.byname... Updating passwd.byuid... ....(中間省略).... gmake[1]: Leaving directory `/var/yp/vbirdnis'www.centos.vbird has been set up as a NIS master server.Now you can run ypinit -s www.centos.vbird on all slave server. |
要注意出現的信息當中,在告知你可以直接輸入 [ctrl]-d 以結束的那個地方, 你的主機名會主動的被捉出來,注意!這個主機名務必需要在 /etc/hosts 可以被找到 IP 的對應, 否則會出現問題。另外,萬一在執行 ypinit -m 時,出現如下的錯誤,那肯定就是有些數據沒有被建立了!
| gmake[1]: *** No rule to make target `/etc/aliases', needed by `mail.aliases'. Stop. gmake[1]: Leaving directory `/var/yp/vbirdnis' make: *** [target] Error 2 Error running Makefile. Please try it by hand.[root@www ~]# touch /etc/aliases # 解決方法很簡單吶!缺少什么檔案,就 touch 他就是了![root@www ~]# /usr/lib64/yp/ypinit -m # 然后再重新執行一次即可! |
如果是如下的錯誤,那可能是因為:
- 你的 ypserv 服務沒有順利啟動,請利用 rpcinfo 檢查看看;
- 你的主機名與 IP 沒有對應好,請檢查 /etc/hosts
| gmake[1]: Entering directory `/var/yp/vbirdnis' Updating passwd.byname... failed to send 'clear' to local ypserv: RPC: Program not registeredUpdating passwd.byuid... failed to send 'clear' to local ypserv: RPC: Program not registeredUpdating group.byname... ....(底下省略).... |
要注意啊,如果你的用戶密碼有變動過,那么你就得要重新制作數據庫,重新啟動 ypserv 及 yppasswdd 喔! 注意注意啊!整個 NIS 服務器這樣就給搞定了,有沒有很簡單啊!
14.2.5 防火墻設置
又來到了防火墻的規劃了!要注意的是,我們的 NIS 與 NFS 都是使用 RPC Server 的,所以啰,除了上述談到的固定埠口之外, 你還得要開放 port 111 才行。假設你已經看過前一章,而且是使用鳥哥的 iptables.rule 腳本來處理你的防火墻, 那么你可以修改該檔案的內容,新增幾條規則去:
| [root@www ~]# vim /usr/local/virus/iptables/iptables.allow iptables -A INPUT -i $EXTIF -p tcp -s 192.168.100.0/24 --dport 1011 -j ACCEPT iptables -A INPUT -i $EXTIF -p udp -s 192.168.100.0/24 -m multiport \--dport 1011,1012 -j ACCEPT[root@www ~]# /usr/local/virus/iptables/iptables.rule # 千萬記得要重新建置防火墻規則啊! |
14.3 NIS Client 端的設定
我們知道網絡聯機是雙向的,所以 NIS server 提供數據庫檔案,NIS client 當然也需要提供一些聯機的軟件啰!這個聯機的軟件就是 ypbind 啦!此外,如同圖 14.1-1?的介紹,在 NIS client 端有登入需求時,NIS client 基本上還是先搜尋自己的 /etc/passwd, /etc/group 等數據后才再去找 NIS server 的數據庫啊!所以 NIS client 最好能夠將本身的賬號密碼刪除到僅剩下系統賬號,亦即 UID, GID 均小于 500 以下的賬號即可, 如此一來既可讓系統執行無誤,也能夠讓登入者的信息完全來自 NIS server ,比較單純啦!
| Tips: 事實上,你想要讓 NIS 服務器寫入的各項賬號數據都在 NIS server 的 /var/yp/Makefile 那個檔案設定的! 你可以進入該檔案搜尋一下 UID 就知道了! ^_^ |
14.3.1 NIS client 所需軟件與軟件結構
NIS client 端所需要的軟件僅有:
- ypbind
- yp-tools
yp-tools 是提供查詢的軟件,至于 ypbind 則是與 ypserv 互相溝通的客戶端聯機軟件啦! 另外,在 CentOS 當中我們還有很多配置文件是與認證有關的,包含 ypbind 的配置文件時, 在設定 NIS client 你可能需要動到底下的檔案:
- /etc/sysconfig/network:就是 NIS 的領域名嘛!
- /etc/hosts:至少需要有各個 NIS 服務器的 IP 與主機名對應;
- /etc/yp.conf:這個則是 ypbind 的主要配置文件,里面主要設定 NIS 服務器所在
- /etc/sysconfig/authconfig:規范賬號登入時的允許認證機制;
- /etc/pam.d/system-auth?:這個最容易忘記!因為賬號通常由 PAM 模塊所管理, 所以你必須要在 PAM 模塊內加入 NIS 的支持才行!
- /etc/nsswitch.conf?:這個檔案可以規范賬號密碼與相關信息的查詢順序,默認是先找 /etc/passwd 再找 NIS 數據庫;
另外, NIS 還提供了幾個有趣的程序給 NIS 客戶端來進行賬號相關參數的修改,例如密碼、shell 等等, 主要有底下這幾個指令:
- /usr/bin/yppasswd :更改你在 NIS database (NIS Server 所制作的數據庫) 的密碼
- /usr/bin/ypchsh ? :同上,但是是更改 shell
- /usr/bin/ypchfn ? :同上,但是是更改一些用戶的訊息!
OK!那么底下就讓我們開始來設定 NIS 客戶端吧!^_^
14.3.2 NIS client 的設定與啟動
啟動 NIS client 的設定就簡單多了!最主要是加入 NIS domain 當中,然后再啟動 ypbind 即可。 雖然你可以手動去修改所有的配置文件,然而近期以來的 Linux distributions 賬號處理機制越來越復雜, 所以如果你想要手動修改所有配置文件,恐怕會瘋掉的~因此,這里建議你使用系統提供的工具來設定, 至于一些重要配置文件,最后有機會再去參考一下即可。
那么 CentOS 6.x 提供了什么好用的管理工具呢?很簡單,就利用 setup 這個指令即可!輸入 setup 就會出現如下的圖示, 然后依序這么處理就好了呦!
圖 14.3-1、利用 setup 進入 authconfig 認證項目
記得在出現上圖 14.3-1 后,選擇認證設定,如果是出現英文的話,那么你就得要選擇『Authentication configuration』的項目,之后就會進入下面的畫面:
圖 14.3-2、進入 authconfig 之后,選擇 NIS 項目
因為我們要用 NIS 作為登入者身份驗證的機制,因此就得要選擇 NIS 項目,如果是英文的話,得要選擇『Use NIS』項目即可。
圖 14.3-3、填寫 NIS 領域以及 NIS 服務器的 IP 即可
最后再填寫 NIS 網域 (Domain) 以及 NIS 服務器的 IP (Server),按下確定即可。如果系統很快的就跳回圖 14.3-1 的畫面, 代表你的設定理論上是沒有問題的。如果一直卡在如下的畫面中:
| 正在激活 rpcbind: [ 確定 ] 正在關閉 NIS 服務: [ 確定 ] 正在啟動 NIS 服務: [ 確定 ] 正在綁定 NIS 服務:....... <==這里一直卡住,沒辦法結束 |
上述的數據就是出問題啦!那代表你的 NIS client 沒有辦法連接上 NIS server,最常發生的就是服務器的防火墻忘記放行,或者是你客戶端輸入服務器 IP 時,打錯數字了~ 那也是很常發生的錯誤啦!這時請自行去修改一番吧!那么這個 setup 到底做了什么修改呢?我們也來看看幾個被改掉的重要配置文件吧:
| [root@clientlinux ~]# cat /etc/sysconfig/network HOSTNAME=clientlinux.centos.vbird NETWORKING=yes GATEWAY=192.168.100.254 NISDOMAIN=vbirdnis <==這個玩意兒會主動的被建立起來[root@clientlinux ~]# cat /etc/yp.conf ....(前面省略).... domain vbirdnis server 192.168.100.254 <==主動建立這玩意兒~[root@clientlinux ~]# vim /etc/nsswitch.conf passwd: files nis shadow: files nis group: files nis hosts: files nis dns # 上面幾個項目是比較重要的,包括身份參數、密碼、群組名、主機名與 IP 對應數據等。 # 你會看到,每個項目后面都會接著 nis ,所以 nis 有被支持啰! |
因為更動到的檔案實在太多了,所以鳥哥還是建議使用 setup 來調整即可。但是,如果你真的想要手動處理的話, 那么你必須要手動的修改底下這些檔案:
- /etc/sysconfig/network (加入 NISDOMAIN 項目)
- /etc/nsswitch.conf (修改許多主機驗證功能的順序)
- /etc/sysconfig/authconfig (CentOS 的認證機制)
- /etc/pam.d/system-auth (許多登入所需要的 PAM 認證過程)
- /etc/yp.conf (亦即是 ypbind 的配置文件)
14.3.3 NIS client 端的檢驗: yptest, ypwhich, ypcat
如何確定 NIS client 已經連上 NIS server 呢?基本上,只要剛剛使用 setup 去設定時,最后的步驟并沒有被卡住, 那應該就是順利成功啦!該步驟會自動啟動 rpcbind 與 ypbind 兩個服務呦!那如何確認數據傳送是正確的? 簡單的要命啊!你可以利用 id 這個指令直接檢查 NIS server 有的,但是 NIS client 沒有的賬號,如果有出現該賬號的相關 UID/GID 信息時,那表示數據傳輸也是正確的。 除此之外,我們還可以透過 NIS 提供的相關檢驗功能來檢查喔!底下分別來瞧一瞧:
-
利用 yptest 檢驗數據庫之測試:
直接在 NIS client 輸入 yptest 即可檢查相關的測試數據,如下所示:
| [root@clientlinux ~]# yptest Test 1: domainname Configured domainname is "vbirdnis"Test 2: ypbind Used NIS server: www.centos.vbirdTest 3: yp_match WARNING: No such key in map (Map passwd.byname, key nobody) ....(中間省略)....Test 6: yp_master www.centos.vbird....(中間省略)....Test 8: yp_maplist passwd.byname protocols.byname hosts.byaddr hosts.byname ....(中間省略)....Test 9: yp_all nisuser1 nisuser1:$1$U9Gccb60$K5lDQ.mGBw9x4oNEkM0Lz/:1001:1001::/home/nisuser1:/bin/bash ....(中間省略).... 1 tests failed |
從這個測試當中我們可以發現一些錯誤,就是在 Test 3 出現的那個警告信息啦。還好,那只是說沒有該數據庫而已~ 該錯誤是可以忽略的。重點在第 9 個步驟 yp_all 必須要有列出你 NIS server 上頭的所有帳戶信息,如果有出現賬號相關數據的話,那么應該就算驗證成功了!
| Tips: 比較有問題的是第三步驟,他會出現在 passwd.byname 當中找不到 nobody 的字樣。這是因為早期的 nobody 之 UID 都設定在 65534 ,但 CentOS 則將 nobody 設定為系統賬號的 99 ,所以當然不會被記錄,也就出現這一個警告。不過,這個錯誤是可忽略的啦! |
-
利用 ypwhich 檢驗數據庫數量
單純使用 ypwhich 的時候顯示的是『NIS Client 的 domain』名稱,而當加入 -x 這個參數時, 則是顯示『NIS Client 與 Server 之間溝通的數據庫有哪些?』你可以這樣測試哩!
| [root@clientlinux ~]# ypwhich -x Use "hosts" for map "hosts.byname" Use "group" for map "group.byname" Use "passwd" for map "passwd.byname" ....(以下省略).... |
由上面我們可以很清楚的就看到相關的檔案啦!這些數據庫檔案則是放置在我的 NIS Server 的 /var/yp/vbirdnis/* 里面啰!
-
利用 ypcat 讀取數據庫內容
除了 yptest 之外,你還可以直接利用 ypcat 讀取數據庫的內容喔!一般作法是這樣:
| [root@clientlinux ~]# ypcat [-h nisserver] [數據庫名稱] 選項與參數: -h nisserver :如果有設定的話,指向某一部特定的 NIS 服務器,如果沒有指定的話,就以 ypbind 之設定為主; 數據庫名稱:亦即在 /var/yp/vbirdnis/ 內的檔名啊!例如 passwd.byname# 讀出 passwd.byname 的數據庫內容 [root@clientlinux ~]# ypcat passwd.byname |
這三個指令在進行 NIS Client 端的檢驗時,是相當有用的喔!不要忽略了他的存在啊!尤其是剛架設好 NIS Client 時,一定要使用 yptest 去檢查看看有沒有設定錯誤喔!根據屏幕顯示的訊息去一個一個校正錯誤才行啊!
14.3.4 使用者參數修改: yppasswd, ypchfn, ypchsh
好了,完成了上述的設定后,你的 NIS server/client 的賬號已經同步了!真是高興不是嗎? 不過,還有個挺大的問題,那就是...使用者如何在 NIS client 修改他自己的登入參數,例如密碼、shell 等等? 因為 NIS client 是藉由數據庫來取得用戶的賬號密碼,那如何在 NIS 客戶端處理賬號密碼的訂正?
問的好!這也是為何我們需要在 NIS server 啟動 yppasswdd 這支服務的主要用意! 因為 yppasswdd 可以接收 NIS client 端傳來的密碼修改,藉此而處理 NIS server 的 /etc/passwd, /etc/shadow , 然后 yppasswdd 還能夠重建密碼數據庫,讓 NIS server 同步更新數據庫!真是很不錯啊! ^_^
那該如何下達指令呢?很簡單啊!透過 yppasswd, ypchsh, ypchfn 來處理即可。這三個指令的對應是:
- yppasswd :與 passwd 指令相同功能;
- ypchfn :與 chfn 相同功能;
- ypchsh :與 chsh 相同功能。
因為功能相當,所以鳥哥這里僅說明一下 yppasswd 而已。假設你已經登入 NIS client 那部主機, 并且是以 nisuser1 這個使用者登入的,記住,這個用戶相關數據僅在 NIS server 上。 接下來,這個使用者可以下達 yppasswd ,如下所示:
| [root@clientlinux ~]# grep nisuser /etc/passwd <==不會出現任何訊息,因為無此賬號 [root@clientlinux ~]# su - nisuser1 <==直接切換身份看看! su: warning: cannot change directory to /home/nisuser1: No such file or directory -bash-4.1$ id uid=1001(nisuser1) gid=1001(nisuser1) groups=1001(nisuser1) # 因為我們 client.centos.vbird 僅有帳戶信息,并沒有用戶家目錄, # 所以就會出現如上的警告,因此才需要用 id 驗證,并且需要加掛 NFS 嘛! # 仔細看,現在的身份確實是 nisuser1 喔!確實有連上 NIS server 啦!-bash-4.1$ yppasswd Changing NIS account information for nisuser1 on www.centos.vbird. Please enter old password: <==這里輸入舊密碼 Changing NIS password for nisuser1 on www.centos.vbird. Please enter new password: <==這里輸入新密碼 Please retype new password: <==再輸入一遍The NIS password has been changed on www.centos.vbird.-bash-4.1$ exit |
嘿嘿!如何,這樣就更新了 NIS server 上頭的 /etc/shadow 以及 /var/yp/vbirdnis/passwd.by* 的數據庫, 簡單吧!一下子就同步化了。不過,如果要教育使用者使用 yppasswd 的話,他可能不太能適應, 不要緊,你可以透過修改 alias 或者是置換掉 /usr/bin/passwd 這支程序即可!那現在讓我們回到 NIS 服務器端看看真的有更動到數據庫嗎?
| [root@www ~]# ll /var/yp/vbirdnis/ -rw-------. 1 root root 13836 Jul 28 13:10 netid.byname -rw-------. 1 root root 14562 Jul 28 13:29 passwd.byname -rw-------. 1 root root 14490 Jul 28 13:29 passwd.byuid -rw-------. 1 root root 28950 Jul 28 13:10 protocols.byname # 仔細看,就是那個密碼檔案被更動過~時間已經不一樣了!再看看登錄檔吧![root@www ~]# tail /var/log/messages Jul 28 13:29:14 www rpc.yppasswdd[1707]: update nisuser1 (uid=1001) from host 192.168.100.10 successful. |
最終從登錄檔里面,我們也能夠得到相關的記錄!這樣就非常完美啦! ^_^
14.4 NIS 搭配 NFS 的設定在叢集計算機上的應用
剛剛在 NIS 客戶端的 nisuser1 登入測試中,你應該已經發現了一件事,那就是怎么 nisuser1 沒有家目錄啊?這很正常啊!因為 nisuser1 的家目錄是在服務器端的 /home 上頭,而你在客戶端登入時, 在客戶端的 /home 底下根本不可能有 nisuser1 的家目錄嘛!那怎辦?很簡單,將服務器端的 /home 掛載到客戶端上面即可啊! 那這個觀念跟叢集計算機有啥關系啊?就讓我們來談談吧!
-
什么是叢集計算機?
因為個人計算機的 CPU 速度越來越快,核心數目越來越多,因此個人計算機的效能已經不比服務器等級的大型計算機差了! 不過,如果要用來作為計算大型數值模式的應用,即使是最快的個人計算機,還是沒有辦法有效的負荷的。此時你可能就得要考慮一下, 是要買超級計算機 (Top 500) 還是要自己組一部 PC 叢集計算機 (PC cluster)。
超級計算機的結構中,主要是透過內部電路將好多顆 CPU 與內存連接在一塊,因為是特殊設計,因此價格非常昂貴。 如果我們可以將較便宜的個人計算機串接在一塊,然后將數值運算的任務分別丟給每一部串接在一塊的個人計算機, 那不就很像超級計算機了嗎?沒錯!這就是 PC cluster 最早的想法。
但是這個作法當中有幾個限制喔,因為每部計算機都需要運算相同的程序,而我們知道運算的數據都在內存當中, 而程序啟動時需要給予一個身份,而程序讀取的程序在每部計算機上面都需要是相同的!同時,每部計算機都需要支持平行化運算! 所以,在 PC cluster 上面的所有計算機就得要有:
- 相同的用戶帳戶信息,包括賬號、密碼、家目錄等等一大堆信息;
- 相同的文件系統,例如 /home, /var/spool/mail 以及數值程序放置的位置
- 可以搭配的平行化函式庫,常見的有 MPICH, PVM...
上面的三個項目中,第一個項目我們可以透過 NIS 來處理,第二個項目則可以使用 NFS 來搞定~所以啰,你說, NIS 與 NFS 有沒有可使用的空間啊? ^_^
| Tips: 由于『預測』這個玩意兒越來越重要,比如說氣象預報、空氣質量預報等等,而預測需要一個很龐大的模式來進行仿真的工作, 這么龐大的模擬工作需要大量的運算,在學校單位要買一部很貴的大型主機實在很不容易!不過,如果能夠串接十部四核心的個人計算機的話, 那么可能只需要不到 20 萬便能夠組成相當于具有 40 顆 CPU 的大型主機的運算能力了!所以說,在未來 PC cluster 是一個可以發展的課題喔! |
-
另一個不成材的實例
那我們有沒有辦法來實作一下平行化的叢集架構呢?老實說,很麻煩~不過,至少我們可以先完成前面談到的兩個組件! 分別是 NIS 與 NFS 嘛!但是,在我們目前這個網絡環境中,用戶賬號實在是太紊亂了~所以,如果想要將服務器的 /home 掛載到客戶端的 /home,那么那個測試用的客戶端可能很多本地用戶都無法登入了~因此,在這個測試練習中, 我們打算這樣做:
- 賬號:建立大于 2000 以上的賬號,賬號名稱為 cluser1, cluser2, cluser3 (將 cluster user 縮寫為 cluser,不是少寫一個 t 喔!),且這些賬號的家目錄預計放置于 /rhome 目錄內,以與 NIS client 本地的用戶分開;
- NIS 服務器:領域名為 vbirdcluster,服務器是 www.centos.vbird (192.168.100.254),客戶端是 clientlinux.centos.vbird (192.168.100.10);
- NFS 服務器:服務器分享了 /rhome 給 192.168.100.0/24 這個網域,且預計將所有程序放置于 /cluster 目錄中。 此外,假設所有客戶端都是很干凈的系統,因此不需要壓縮客戶端 root 的身份。
- NFS 客戶端:將來自 server 的文件系統都掛載到相同目錄名稱底下!
那就分別來實作一下啰!
-
NIS 實作階段
| # 1. 建立此次任務所需要的賬號數據: [root@www ~]# mkdir /rhome [root@www ~]# useradd -u 2001 -d /rhome/cluser1 cluser1 [root@www ~]# useradd -u 2002 -d /rhome/cluser2 cluser2 [root@www ~]# useradd -u 2003 -d /rhome/cluser3 cluser3 [root@www ~]# echo password | passwd --stdin cluser1 [root@www ~]# echo password | passwd --stdin cluser2 [root@www ~]# echo password | passwd --stdin cluser3# 2. 修改 NISDOMAIN 的名稱 [root@www ~]# vim /etc/sysconfig/network NISDOMAIN=vbirdcluster <==重點在改這個項目喔! |
這個案例中,你只要做完上述的動作就即將完成了,其他的配置文件請參考前面 14.2 節所談到的各個必要項目。 接下來當然就是重新啟動 ypserv 以及制作數據庫啰!
| # 3. 制作數據庫以及重新啟動所需要的服務: [root@www ~]# nisdomainname vbirdcluster [root@www ~]# /etc/init.d/ypserv restart [root@www ~]# /etc/init.d/yppasswdd restart [root@www ~]# /usr/lib64/yp/ypinit -m |
依序一個一個指令下達!上述的這四個指令稍微有相依性關系的!所以不要錯亂了順序喔!接下來,請換到客戶端進行:
作法太簡單了,鳥哥這里就不示范啰。
-
NFS 服務器的設定
| # 1. 設定 NFS 服務器開放的資源: [root@www ~]# mkdir /cluster [root@www ~]# vim /etc/exports /rhome 192.168.100.0/24(rw,no_root_squash) /cluster 192.168.100.0/24(rw,no_root_squash)# 2. 重新啟動 NFS 啰: [root@www ~]# /etc/init.d/nfs restart [root@www ~]# showmount -e localhost Export list for localhost: /rhome 192.168.100.0/24 /cluster 192.168.100.0/24 |
服務器的設定是很單純的~客戶端的設定得要注意啰!
| # 1. 設定 NIS Client 的 mount 數據! [root@clientlinux ~]# mkdir /rhome /cluster [root@clientlinux ~]# mount -t nfs 192.168.100.254:/rhome /rhome [root@clientlinux ~]# mount -t nfs 192.168.100.254:/cluster /cluster # 如果上述兩個指令沒有問題,可以將他加入 /etc/rc.d/rc.local 當中啊![root@clientlinux ~]# su - cluser1 [cluser1@clientlinux ~]$ |
最后你應該就能夠在客戶端以 cluser1 登入系統!就這么簡單的將賬號與文件系統同步做完啦!如果你真的想要玩一下 PC Cluster 的話,鳥哥也有寫過一篇不是很成熟的 PC cluster 簡易架設,有興趣的話請自行參考:
- http://linux.vbird.org/linux_server/0600cluster.php
14.5 重點回顧
- Network Information Service (NIS) 也可以稱為 Sun Yellow Pages (yp),主要是負責在網域當中幫忙 NIS Client 端查尋賬號與密碼以及其他相關網絡參數的服務;
- NIS server 其實就是提供本身的 /etc/passwd, /etc/shadow, /etc/group, /etc/hosts 等賬號密碼數據,以及相關的網絡參數等,以提供網域當中 NIS Client 的搜尋之用;
- NIS 為 server/client 架構,當 NIS client 有賬號登入需求時,該主機會 (1)先找自己的 /etc/passwd, (2)再前往 NIS server 搜尋相關賬號資料。
- NIS 使用的軟件就是 yp 這個軟件,主要分為兩部份, ypserv 用在 NIS Server,至于 ypbind 與 yp-tools 則用在 NIS Client 上面。
- 為加快 NIS 查詢的速度,因此 NIS server 會將本機的賬號數據制成傳輸較快的數據庫檔案, 并放置于 /var/yp/(nisdomainname)/ 目錄當中;
- 不論是 NIS 或者是 NFS 都是藉由 RPC Server 所啟用的,因此都可以使用 rpcinfo 來查尋 NIS 是否已經啟動,以及該 daemon 是否已經向 portmapper (RPC server) 注冊了!
- 在 NIS Server 的設定當中,最重要的一個步驟就是將賬號、密碼、網絡參數等 ASCII 格式檔案轉成數據庫檔案 (database file),以提供 NIS client 的查尋!而啟動 ASCII 轉成 database 的程序可以使用 /usr/lib64/yp/ypinit -m 或者到 /var/yp 底下執行 make 均可。
- 由于 NIS 通常使用于內部網域當中,因此 /etc/hosts 這個檔案的設定相當重要!
- 若想讓使用者在任一部 NIS 管轄的主機登入都可以使用同一份家目錄,則需開啟 NFS 提供 /home 給所有的主機掛載使用;
14.6 本章習題
- 請簡單說明 NIS server 的功能與工作流程 當你有多部具有相同賬號的 Linux 主機時,即可利用 NIS 所提供的服務,來利用一部 NIS 主機掌控所有的 linux 主機的登入時所需查閱的賬號與密碼驗證。流程如下:
- NIS Server 將自己系統內的 /etc/passwd, /etc/group, /etc/hosts 等制作成為 DBM 的數據庫格式檔案;
- NIS Client 若有用戶登入的要求時,會前往 NIS Server 搜尋數據庫里面的數據做為驗證之用。
- 每次更動 NIS Server 上面的用戶數據時,則 NIS Server 需要重新制作 DBM 數據庫檔案才行!
- 請簡單說明 NIS Server/client 的架構 NIS master/client 的特色為:
- NIS Server 的 master 先將自己的賬號、密碼相關檔案制作成為數據庫檔案(database file);
- NIS Server 的 master 將自己的數據庫檔案傳送到 slave 上面;
- NIS Server 的 slave 接收來自『信任的 NIS Server master 主機』的數據后,更新自己的數據庫,使自己的數據庫與 master 主機的數據同步;
- 網域當中的所有 NIS Client 查尋 NIS Server 時,會找尋『最先響應的那一部 NIS 主機的數據庫內容』。 也就是說,架設 slave NIS server 可以分擔區域內 NIS 的工作!
- NIS 啟動之前需要先啟動那個服務,否則就無法啟動成功 (提示:RPC Server) 因為 NIS 是 RPC Server 的一種,所以必須要啟動 rpcbind 這個 daemon 才行!
- 我的 NIS 域名為 bird ,另外,我主機的 IP 與主機名為 192.168.5.1/bird.nis.org ,請問要這些信息需要設定在 NIS Server 的哪些檔案之內? 域名可以直接手動下達『 nisdomainname bird 』也可以寫入 /etc/sysconfig/network 里面『NISDOMAIN=bird』; IP 與 主機名 需要寫入在 /etc/hosts 里面。
- /etc/nsswitch.conf 的功能為何?如果我想要讓密碼查尋先本地的密碼文件,再查尋 NIS ,需要如何設定? 該檔案的功能很多,在 DNS 方面,可以用來決定正、反解的順序,至于密碼則可以用來判斷何者為先!如果需要先查本機再查 NIS 的密碼時,需要的參數:
passwd: files nis
shadow: files nis - 如果我想要增加網域當中一個新的賬號:newaccount,并且這個 newaccount 可以讓 NIS Client 查尋到他的賬號與密碼,需要進行哪些步驟?
- 先登入 NIS Server 以 useradd newaccount 以及 passwd newaccount 來新增賬號;
- 制作密碼數據庫:『/usr/lib64/yp/ypinit -m』
- 重新啟動:『/etc/rc.d/init.d/ypserv restart ; /etc/rc.d/init.d/yppasswdd restart』。
- 實作范例題:底下是我的網域參數特征:
network/netmask:192.168.1.0/255.255.255.0
NIS server : 192.168.1.100 (hostname: server.nis.test)
NIS cient: 192.168.1.200 (hostname: client1.nis.test)
NIS domain name: nis.test
利用上面的參數來設定 NIS 架構,請一步一步的寫下你的設定。 請自行參考本章節的內容設定
14.7 參考數據與延伸閱讀
- Study Area 之 NIS 服務器架設:http://www.study-area.org/linux/servers/linux_nfs.htm
- NIS 官方網站:http://www.linux-nis.org/
- NIS HOW-TO:http://www.linux-nis.org/nis-howto/HOWTO/index.html
總結
以上是生活随笔為你收集整理的鸟哥的Linux私房菜(服务器)- 第十四章、账号控管: NIS 服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸟哥的Linux私房菜(服务器)- 第十
- 下一篇: 鸟哥的Linux私房菜(服务器)- 第二