上次學習了SUN的NFS服務,今天學習SUN的另一個作品NIS服務。Network Information Service(NIS)原名叫做Sun Yellow Pages,也就是YP(黃頁),是以NIS服務的配置檔案都是YP開頭,也不難了解了。
(1)NIS服務能提供什麼功能?與windows server作業系統中的AD比較如何?
用過windows server 2008/2003/2000的都知道AD,NIS的作用就像AD,進行使用者賬号的集中管理,NIS提供使用者的賬号、密碼、UID、GID、家目錄、shell 等。在客戶機登入時輸入的使用者賬号到NIS伺服器上進行認證,本地不需要具有該使用者賬号資訊。
但是我覺的NIS沒有像AD那樣使用友善,AD還能管理計算機,但NIS不能。另外還一有個缺點是:使用者登入後,在本地沒有家目錄,此時需要結合NFS服務完成這個功能。NIS需要在伺服器端與用戶端都進行配置,AD不需要在用戶端進行配置。windows server中可以配置多台域控制器,NIS也可以配置成主從結構。
(2)NIS是基于什麼協定的服務?
NIS與NFS一樣都是基于RPC協定。
(3)在ubuntu server 10.4中需要的軟體包?
NIS在ubuntu 中在伺服器與用戶端需要的軟體包都是nis,portmap。
(4)使用NIS服務要準備那些東西?
基本的使用者賬号管理,會配置NFS,知道RPC的作用,
還要提前想好一個NIS的域名,這個域名與NDS的域名不同,伺服器端與用戶端安裝NIS時要用到這個NIS域名。
NIS伺服器最好采用固定IP。
有DNS伺服器的,要設定好NIS用戶端能解析到NIS伺服器;沒有DNS的,要配置好用戶端的/etc/hosts檔案,使用用戶端能解析到NIS伺服器。
是否需要配置主從NIS伺服器。
配置一台NIS伺服器建立使用者賬号admin04,要求在用戶端這賬号能夠登入,并同時挂載上自己的家目錄,有相應的權限,可以讀寫檔案。
(1)安裝NIS
#sudo apt-get install nis portmap
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178001zvXl.png"></a>
如果這台機器是做為NIS主伺服器,那麼就建立一個NIS域名,如果做為從NIS伺服器或用戶端,則輸入一個存在的NIS域名。這裡我寫一個testlab作為NIS域名。
完成後,會在/etc下新增yp.conf,ypserver.conf,ypserv.securenets三個檔案
(2)配置/etc/default/nis
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178001p6Ll.png"></a>
這裡隻配置一台主NIS伺服器
(2)配置/etc/yp.conf,增加以下内容。
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178002abVd.png"></a>
domain,server都是關鍵字。
testlab就是NIS域名,如果不記得了或要修改,可以用#nisdomainname完成查詢或修改
ubuntulab就是NIS伺服器的主機名
(3)初始化資料庫
#sudo /usr/lib/yp/ypinit –m
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178002OO3P.png"></a>
因為這是一台主NIS伺服器是以用帶-m的參數,初始化NIS服務的資料庫。
#sudo /etc/init.d/nis restart
重新開機NIS服務。
到此NIS伺服器就配置完了,此時能看到在/var/yp下有這麼一些檔案
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178003rfQm.png"></a>
其中Makefile就是NIS資料庫檔案
testlab就是以”NIS域名”為名的目錄,内容就是一些相關的配置檔案
(4)現在把/home/admin04用NFS共享出來,具體NFS配置,在這不再說了
#sudo vim /etc/exports
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178003MX0R.png"></a>
1003為admin04的UID,GID。
(1)安裝NIS軟體包
在此過程中輸入與NIS伺服器端相同的NIS域名
(2)/etc/yp.conf配置,新增以下内容
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178003lPtS.png"></a>
192.168.2.87是NIS伺服器的IP位址
(3)修改/etc/passwd,/etc/group,/etc/shadow,依次增加以下内容
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_12861780039yHb.png"></a>
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_128617800477MP.png"></a>
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178004Dwer.png"></a>
到此NIS用戶端也就配置完了。
(4)測試,通常用yptest,ypwhich,ypcat
yptest:測試 yp 的設定内容、資料庫内容等等所有 NIS 相關的資料測試;
#yptest
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178004ciNR.png"></a>
看到test 9的測試内容為圖中所示,則表示成功。為什麼會出現test 3所示的警告資訊,是因為在/var/yp/Makefile中預設的設定為
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178005eCau.png"></a>
也就是不傳送nobody這個賬号。在ubuntu中nobody的UID,GID都為65534,如果是想傳送并消除test 3的警告,則需要在NIS伺服器端更改成
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178005BbET.png"></a>
設定成“0”就是傳送
重新開機動NIS服務
再次使用yptest,就會看到
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178006K4bH.png"></a>
就會看nobody也傳送過來了,不會出現test 3 的錯誤了。
ypwhich:測試 NIS Client 與 Server 之間溝通的資料庫 (database) 到底是哪幾個檔案;
#ypwhich
會顯示NIS伺服器的主機名
#ypwhich –x
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178006wCTg.png"></a>
ypcat:主要在取得 NIS Server 上面的使用者密碼資訊
#ypcat passwd.byname
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178007YUIJ.png"></a>
也可以用geten指令檢視
#getent passwd
#getent group
也能看到相應的NIS使用者群組
(5)把admin04的家目錄開機自動挂載到NIS的用戶端
#sudo /home/admin04
#sudo chown admin04:admin04 /etc/admin04
修改/etc/fstab
#sudo vim /etc/fstab
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_12861780077O5K.png"></a>
這時admin04使用者登入到NIS用戶端時,家目錄也同時挂載上,否則當admin04登入時,會提示找不到家目錄。
*:為什麼我不直接把NFS的/home目錄共享出來,而隻是使用者的admin04目錄?
因為我發現當在NIS用戶端挂載了NFS伺服器端分享出來的/home目錄後,NIS用戶端的本地使用者登入後,就沒有家目錄了。是以要想NIS用戶端的本地使用者也能正常登入時,就用這方式。
(6)其它問題
以SSH登入不會出現什麼提示,但是以桌面方式(ubuntu desktop)登入,會出現以下提示
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_12861780080I83.png"></a>
出現以上資訊,那麼桌面上就是空白,什麼菜單也沒有,無法使用。這是因為在NFS端共享出來的家目錄權限有問題,我的解決方法是在NFS伺服器把admin04的權限修改成775,google一下這個問題也有其它的解決方法。
<a href="http://xuchengji.blog.51cto.com/attachment/201010/4/160472_1286178008rFbQ.png"></a>
出現以上資訊,隻要點"delete”就好了,隻是桌面上一些小工具沒有,還是可以用的。
在這沒有實驗NIS的主從配置及在用戶端更改密碼yppasswd,ypchfn,ypchsh;覺的在生産環境中應用NIS不是太靈,相比之下windows server的AD就比較好用,另外一種集中管理的方式LDAP也是可以的;還有一種方式就是利用samba把linux機器配置成域控制器,進行使用者的集中管理。文中沒有修改的檔案(ypserver.conf,ypserv.securenets,/etc/netgroup),都采用預設設定。為了增強portmap安全性,還應配置/etc/hosts.deny,/etc/hosts.allow,/etc/ypserv.securenets檔案。
本文轉自xcjgutong 51CTO部落格,原文連結:http://blog.51cto.com/xuchengji/400864