天天看點

ubuntu server10.4下NIS服務的配置

上次學習了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