前言:
上次學習了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,要求在客戶端這賬號能夠登錄,並同時掛載上自己的家目錄,有相應的權限,可以讀寫文件。
NIS服務器配置:
(1)安裝NIS
#sudo apt-get install nis portmap
如果這臺機器是做爲NIS主服務器,那麼就創建一個NIS域名,如果做爲從NIS服務器或客戶端,則輸入一個存在的NIS域名。這裏我寫一個testlab作爲NIS域名。
完成後,會在/etc下新增yp.conf,ypserver.conf,ypserv.securenets三個文件
(2)配置/etc/default/nis
這裏只配置一臺主NIS服務器
(2)配置/etc/yp.conf,增加以下內容。
domain,server都是關鍵字。
testlab就是NIS域名,如果不記得了或要修改,可以用#nisdomainname完成查詢或修改
ubuntulab就是NIS服務器的主機名
(3)初始化數據庫
#sudo /usr/lib/yp/ypinit –m
因爲這是一臺主NIS服務器所以用帶-m的參數,初始化NIS服務的數據庫。
#sudo /etc/init.d/nis restart
重啓NIS服務。
到此NIS服務器就配置完了,此時能看到在/var/yp下有這麼一些文件
其中Makefile就是NIS數據庫文件
testlab就是以”NIS域名”爲名的目錄,內容就是一些相關的配置文件
(4)現在把/home/admin04用NFS共享出來,具體NFS配置,在這不再說了
#sudo vim /etc/exports
1003爲admin04的UID,GID。
NIS客戶端配置:
(1)安裝NIS軟件包
#sudo apt-get install nis portmap
在此過程中輸入與NIS服務器端相同的NIS域名
(2)/etc/yp.conf配置,新增以下內容
192.168.2.87是NIS服務器的IP地址
(3)修改/etc/passwd,/etc/group,/etc/shadow,依次增加以下內容
到此NIS客戶端也就配置完了。
(4)測試,通常用yptest,ypwhich,ypcat
yptest:測試 yp 的設定內容、數據庫內容等等所有 NIS 相關的資料測試;
#yptest
看到test 9的測試內容爲圖中所示,則表示成功。爲什麼會出現test 3所示的警告信息,是因爲在/var/yp/Makefile中默認的設置爲
也就是不傳送nobody這個賬號。在ubuntu中nobody的UID,GID都爲65534,如果是想傳送並消除test 3的警告,則需要在NIS服務器端更改成
設置成“0”就是傳送
重啓動NIS服務
再次使用yptest,就會看到
就會看nobody也傳送過來了,不會出現test 3 的錯誤了。
ypwhich:測試 NIS Client 與 Server 之間溝通的數據庫 (database) 到底是哪幾個檔案;
#ypwhich
會顯示NIS服務器的主機名
#ypwhich –x
ypcat:主要在取得 NIS Server 上面的使用者密碼信息
#ypcat passwd.byname
也可以用geten命令查看
#getent passwd
#getent group
也能看到相應的NIS用戶和組
(5)把admin04的家目錄開機自動掛載到NIS的客戶端
#sudo /home/admin04
#sudo chown admin04:admin04 /etc/admin04
修改/etc/fstab
#sudo vim /etc/fstab
這時admin04用戶登錄到NIS客戶端時,家目錄也同時掛載上,否則當admin04登錄時,會提示找不到家目錄。
*:爲什麼我不直接把NFS的/home目錄共享出來,而只是用戶的admin04目錄?
因爲我發現當在NIS客戶端掛載了NFS服務器端分享出來的/home目錄後,NIS客戶端的本地用戶登錄後,就沒有家目錄了。所以要想NIS客戶端的本地用戶也能正常登錄時,就用這方式。
(6)其它問題
以SSH登錄不會出現什麼提示,但是以桌面方式(ubuntu desktop)登錄,會出現以下提示
出現以上信息,那麼桌面上就是空白,什麼菜單也沒有,無法使用。這是因爲在NFS端共享出來的家目錄權限有問題,我的解決方法是在NFS服務器把admin04的權限修改成775,google一下這個問題也有其它的解決方法。
出現以上信息,只要點"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文件。
NIS 官方網站:http://www.linux-nis.org/
NIS HOW-TO:http://www.linux-nis.org/nis-howto/HOWTO/index.html