LDAP學習筆記之四:NIS簡解


一、簡介

1NIS的產生

正所謂有需求才會有產品,有問題才會有方法去解決,那么NIS是怎么產生的呢?

在一個大型的網域中,如果有多部Linux主機,而且需要每台主機都設定相同的帳號與密碼時,是十分麻煩的。
此時,如果能夠有一台NIS主控制服務器(master server)來管理該網域中所有主機的帳號密碼,
當其他的主機有用戶登錄的需求時,才到這台服務器上請求相關的帳號密碼等使用者資料,這樣一來,如果想要增加、修改、刪除用戶的資料,
只需要到這台服務器上面處理即可,這樣就能夠大大降低重復設定用戶帳號密碼的步驟,便於管理。NIS(Network Information Services) Server就可以實現這樣的功能。

2什么是NIS

網絡信息服務(Network Information Service)是集中控制幾個系統管理數據庫的網絡用品。NIS簡化了UNIX和LINUX桌面客戶的管理工作,
客戶端利用它可以使用中心服務器的管理文件。桌面系統的用戶無需建立他們自己的/etc/passwd,他們只簡單的使用維護在NIS服務器的文件即可。
用戶只需要在nis服務器上面創建,客戶端加入nis域,直接可以使用Nis域上的用戶來登錄客戶端。

二、NIS的相關組件

 1.服務端

配置文件

主要服務

數據庫相關指令

2客戶端

配置文件

主要指令

三、NIS環境

1 NIS所需的軟件包

yp-tools :提供 NIS 相關的查尋指令功能 
ypbind :提供 NIS Client 端的設定軟件 
ypserv :提供 NIS Server 端的設定軟件 
portmap :這是 RPC必須的軟件!

相關端口:portmap :111,因為NIS、NFS 都是依賴於portmap服務 6.0/7.0 版本用rpcbind取代portmap服務
相關包:ypserv(NIS服務器必需的),ypbind(NIS客戶端必需的,默認已安裝),yp-tools(NIS的常用工具,默認已安裝)

2 NIS Server (Master/Slave)

NIS服務器包括主從服務器兩種,從的作用就是備份,即當主服務器出現故障后,從能直接使用

主(Master):將文件建成數據庫,並提供給Slave來更新;
從(Slave):以Master的數據庫作為本身的數據庫來源;

詳細:
1. Master先將帳號密碼相關文件制作成數據庫文件;
2. Master可以主動告訴Slave來更新;
3. Slave亦可以主動前往Master取得更新;
4.若有帳號密碼變動時,需要重新制作數據庫文件並重新同步Master/Slave。

3 NIS Client

1.NIS client 若有登入需求時,會先查詢其本的 /etc/passwd, /etc/shadow 等檔案; 
2.若在 NIS Client 本機找不到相關的賬號數據,才開始向整個 NIS 網域的主機廣播查詢. 
3.每個 NIS server (不論 master/slave) 都可以響應,基本上是『先響應者優先』。

四、服務器端搭建

[root@ldap-server1 ~]# yum -y install ypserv ypbind yp-tools rpcbind #安裝ypserv服務相關的包
[root@ldap-server1 ~]# vim /etc/sysconfig/network #設置NIS網絡名稱
NISDOMAIN=ldap-server1.example.com
[root@ldap-server1 ~]# nisdomainname ldap-server1.example.com  #設置NIS域名
[root@ldap-server1 ~]# vim /etc/rc.d/rc.local  #開機自啟
/bin/nisdomainname ldap-server1.example.com
[root@ldap-server1 ~]# vim /etc/ypserv.conf #限制指定網段才能訪問
127.0.0.0:*:*:none
192.168.1.0/255.255.255.0:*:*:none
			 :*:*:deny	

[root@ldap-server1 ~]# systemctl start rpcbind  #啟動NIS相關服務
[root@ldap-server1 ~]# systemctl start yppasswdd
[root@ldap-server1 ~]# systemctl start ypserv
[root@ldap-server1 ~]# /usr/lib64/yp/ypinit -m #初始化數據庫 再執行“ctrl+D”,再輸入y,如果期間有更改NIS服務器的配置文件,則需要重新初始化數據庫
[root@ldap-server1 ~]# systemctl restart rpcbind  #初始化數據庫后需要重啟服務
[root@ldap-server1 ~]# systemctl restart yppasswdd
[root@ldap-server1 ~]# systemctl restart ypserv
[root@ldap-server1 ~]# systemctl enable rpcbind   #開機啟動
[root@ldap-server1 ~]# systemctl enable yppasswdd
[root@ldap-server1 ~]# systemctl enable ypserv

五、NIS客戶端

[root@nis-client ~]# yum -y install ypserv ypbind yp-tools rpcbind #安裝ypserv服務相關的包
[root@nis-client ~]# vim /etc/sysconfig/network #設置NIS網絡名稱
NISDOMAIN=ldap-server1.example.com
[root@nis-client ~]# nisdomainname ldap-server1.example.com  #設置NIS域名
[root@ldap-server1 ~]# vim /etc/rc.d/rc.local  #開機自啟
/bin/nisdomainname ldap-server1.example.com
[root@ldap-server1 ~]# vim /etc/hosts  #添加NIS客戶端的信息
192.168.1.132 ldap-server1.example.com
192.168.1.133 nis-client.example.com  
[root@nis-client ~]# vim /etc/yp.conf
domain ldap-server1.example.com server ldap-server1.example.com
[root@nis-client ~]# systemctl start rpcbind
[root@nis-client ~]# systemctl start ypbind  

六、驗證

 

1.服務端
[root@ldap-server1 ~]# for i in {1..9};do useradd nis-user${i};done  #創建測試用戶
[root@ldap-server1 ~]# for i in {1..9};do echo "123456"|passwd --stdin nis-user${i};done
[root@ldap-server1 ~]# /usr/lib64/yp/ypinit -m #新增用戶需要重新初始化數據庫
[root@ldap-server1 ~]# systemctl restart rpcbind  #初始化數據庫后需要重啟服務
[root@ldap-server1 ~]# systemctl restart yppasswdd
[root@ldap-server1 ~]# systemctl restart ypserv
2.客戶端
[root@nis-client ~]# yptest
[root@nis-client ~]# getent passwd nis-user1 
[root@nis-client ~]# su - nis-user1  #客戶端切換進NIS域用戶,不能正常顯示是因為沒有服務器的這三個隱藏文件及用戶目錄
su: 警告:無法更改到 /home/nis-user1 目錄: 沒有那個文件或目錄
/usr/bin/id: cannot find name for group ID 1001
-bash-4.2$ id
uid=1001(nis-user1) gid=1001 組=1001

 

切換NIS域用戶告警問題解決思路  

使用NFS將服務端的nishome目錄共享出去,在客戶端將NFS的服務端共享的目錄掛載到本地即可,這里我采用自動掛載

1.服務端開啟NFS,並共享用戶目錄,建議調整用戶目錄,如/nishome,目錄權限需要設置其他用戶所有權
2.客戶端安裝autofs包,使用通配符的方式,將服務端的nishome下的用戶都掛載到客戶端
[root@nis-client ~]# systemctl start autofs
[root@nis-client ~]# vim /etc/auto.nis
*      -fstype=nfs    192.168.1.132:/nishome/& #&會自動根據用戶名匹配

七、排查問題思路

1.確保客戶機和服務器之間的網絡良好

2.確保NIS的配置無誤

檢查客戶機和服務器所處的NIS域是否一致,可用nisdomainname檢查。
檢查服務器端的/etc/ypserv.securenets文件中指定可以訪問NIS服務的機子是否包含客戶機
檢查客戶機端的/etc/yp.conf文件中指定的NIS服務器是否正確
檢查客戶機端的/etc/nsswitch.conf文件的配置
如果在服務器和客戶機的配置文件中指定彼此的時候使用了對方的主機名,記得檢查/etc/hosts中是否包含了對對方主機名的解析。

3.重啟服務  

另外:如果上述方法還是行不通的話,可以再試試/bin/systemctl add-wants multi-user.target rpcbind.service[2],然后重啟機器  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM