nis 主從搭建


環境:CentOS release 6.6 (Final)

服務器 nis master 192.169.x.1主機名:node-master

服務器 nis master 192.169.x.2主機名:node-slave

 

 

 

 

 

 

 

 

 一、master服務器端設置

在服務器上安裝所需軟件

 

 

 

 1、yum -y install yp-tools ypbind ypserv portreserve

 

 

 2、設置NIS的域名

①直接命令行下設置NIS域名 臨時生效

nisdomainname sun.com

②每次開機時都需要啟動這個nis域名的話,直接把它寫入/etc/rc.d/rc.local中

/bin/nisdomainname sun.com.cn

③啟動nis時就自動設置好nis域,可以設置/etc/sysconfig/network這個文件

YPSERV_ARGS="-p 800" 固定ypserv啟動在80端口 若有防火牆方便管理

 

 

 ④修改/etc/yp.conf

domain sun.com.cn server 192.168.x.1

3、主要配置文件/etc/ypserv.conf,根據實際情況在其中添加三行,我的如下(允許149 等類似網段的主機連接此nis)

 

 

 

 

 4、啟動所有相關的服務

注意:在centos6 之后的版本 在啟動以下服務的時候一定要先啟動 rpcbind服務 否則后面的ypserv yppasswdd 服務剛啟動起來就會掛掉
/etc/init.d/rpcbind start #啟動RPC必須服務
[root@node-master ~]#/etc/init.d/portreserver start
[root@node-master ~]#/etc/init.d/ypserv start #啟動NIS服務器提供的主要服務
[root@node-master ~]#/etc/init.d/yppasswdd start #啟動client修改密碼服務

 

 

 

 啟動后rpcinfo查看


[root@node-master yp]# rpcinfo -p node-master
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 39732 status
100024 1 tcp 33393 status
100004 2 udp 988 ypserv
100004 1 udp 988 ypserv
100004 2 tcp 991 ypserv
100004 1 tcp 991 ypserv
100009 1 udp 1001 yppasswdd
600100069 1 udp 635 fypxfrd
600100069 1 tcp 637 fypxfrd

 

 

# rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting

 

5、建立數據庫

在完成了上面的所有步驟后,接下來我們得要開始將主機上面的賬號檔案轉成數據庫檔案啦!
不過,因為擔心與 NIS 客戶端的賬號有沖突,加上之前我們已經建立過一些賬號了。所以,這里我們的新賬號使用大於1000的UID來建立。
#useradd -u 1001 nisuser1 -p "加密的密碼"
#useradd -u 1002 nisuser2 -p "加密的密碼"
小知識:
useradd -p參數后面不能是明文的密碼 必須是加密后的密碼
可以用openssl passwd -stdin 生成
如 生成一個123密碼的密文 將其復制到-p 參數后面即可

接下來,將建立的帳密數據轉成數據庫吧!
[root@node-master ~]#/usr/lib64/yp/ypinit -m

略....

要注意出現的信息當中,在告知你可以直接輸入 [ctrl]-d 以結束的那個地方, 你的主機名會主動的被捉出來。
注意!這個主機名務必需要在 /etc/hosts 可以被找到 IP 的對應, 否則會出現問題。
另外,萬一在執行 ypinit -m 時,出現如下的錯誤,那肯定就是有些數據沒有被建立了

 

 

 

建立數據庫后,必須要通知ypserv與yppasswdd這兩個服務 以告知數據庫被更改了
[root@node-master ~]#/etc/init.d/ypserv restart
[root@node-master ~]#/etc/init.d/yppasswdd restart

6、nis-master與slave 相關的配置

當執行了 ypinit -m 之后,所有的主機上面的賬號相關檔案會被轉成數據庫檔案, 這些數據庫會被放置到 /var/yp/"nisdomainname" 當中,

[root@node-master yp]# ls /var/yp/
binding Makefile nicknames sun.com.cn ypservers

 

注意: /var/yp/目錄下會產生一個你自己設定的nisdomainname目錄 一定要保證master,slave,client中的 nisdomainname設置的一致

開啟Slave服務推送

7.1、 將 /var/yp/Makefile中的NOPUSH定義修改為false

7.2、指定Slave服務主機,告訴master要把數據給誰-->node-slave

 

[root@node-master yp]# cat /var/yp/ypservers
node-master
node-slave

7.3、啟動 ypxfrd服務

可以讓 slave 服務器主動鏈接上 ypxfrd 來更新數據庫, 可以免除系統管理原自己手動更新。
[root@node-master yp]# /etc/init.d/ypxfrd start
此外,如果 master 機器想要直接將某些特定的數據庫直接傳給 slave 主機的話, 那么可以使用 yppush 這個指令。

例如:#yppush -h node-slave passwd.*

設置開機啟動:
chkconfig --level 35 yppasswdd on
chkconfig --level 35 ypxfrd on

chkconfig --level 35 ypserv on

 

 

二:slave服務器端的設置(基本和master一致);
1、在服務器上安裝所需軟件(yum -y install yp-tools ypbind ypserv portreserve)

2、設定NIS域名(同master一樣)
#nisdomainname dindin #使用nisdomainname命令設置NIS域名
# vim /etc/rc.d/rc.local
添加:/bin/nisdomainname dindin #設定開機啟動sunnorth域名
# vim /etc/sysconfig/network

[root@node-slave yp]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node-slave
NISDOMAIN=sun.com.cn

3、配置主要配置文件 /etc/ypserv.conf

跟master一樣,這里就不在截圖說明

3、[root@node-slave ~]# vim /etc/sysconfig/yppasswdd
YPPASSWDD_ARGS="--port 1012"
D.[root@node-slave ~]# vim /etc/yp.conf
domain sun.com.cn server 172.16.x.2

4、啟動服務(啟動前確認rpcbind服務啟動了已經):
#/etc/init.d/ypserv start
# /etc/init.d/yppasswdd start
# /etc/init.d/ypbind start

設置開機啟動:
chkconfig --level 35 yppasswdd on

chkconfig --level 35 ypserv on
chkconfig --level 35 ypbind on

 

 

5、獲取源數據庫(即同步master上的數據)
/usr/lib64/yp/ypinit -s node-master
We will need a few minutes to copy the data from node-master.
Transferring rpc.byname...
Trying ypxfrd ... success

Transferring group.byname...
Trying ypxfrd ... success

Transferring rpc.bynumber...
Trying ypxfrd ... success

Transferring netid.byname...
Trying ypxfrd ... success

Transferring protocols.bynumber...
Trying ypxfrd ... success

Transferring hosts.byaddr...
Trying ypxfrd ... success

Transferring passwd.byname...
Trying ypxfrd ... success

Transferring passwd.byuid...
Trying ypxfrd ... success

Transferring services.byservicename...
Trying ypxfrd ... success

Transferring mail.aliases...
Trying ypxfrd ... success

Transferring group.bygid...
Trying ypxfrd ... success

Transferring protocols.byname...
Trying ypxfrd ... success

Transferring ypservers...
Trying ypxfrd ... success

Transferring services.byname...
Trying ypxfrd ... success

Transferring hosts.byname...
Trying ypxfrd ... success


node-slave's NIS data base has been set up.
If there were warnings, please figure out what went wrong, and fix it.

At this point, make sure that /etc/passwd and /etc/group have
been edited so that when the NIS is activated, the data bases you
have just created will be used, instead of the /etc ASCII files.

6、測試:
[root@node-slave ~]# ypcat -h tra-dindin-nis-slave passwd.byname
[root@node-slave yp]# ypcat -h node-slave passwd.byname
nisuser2:$6$ySiTMICx$a2nmlDx/w8H9Ot8RPNekvhoOP5MUcTpycE8ew.gRDM5In/5VbnHiK/6NijWbVR6L6jffIaS7U1OHdVTHPZK/Q/:1002:1002::/home/nisuser2:/bin/bash
nisuser1:$6$HtJ1M0vL$tBgDvjz9FEh9pGEitcht8YYUgYFCz42vqeVIMhMkXhIOKAMnbT67FBWViKH6V49io.k/fnoO5vdJftaezaU1M0:1001:1001::/home/nisuser1:/bin/bash

 

nisuser1及nisuser2這兩個用戶是我之前在master上面建立的用戶

 

7、設置數據同步時間(master端要啟動ypxfrd)
# vim /etc/crontab
# 在最后加入以 ypxfr 傳輸數據的 script 喔!
*/5 * * * * /usr/lib64/yp/ypxfr –h tra-dindin-nis-master passwd.byname
*/5 * * * * /usr/lib64/yp/ypxfr –h tra-dindin-nis-master passwd.byuid

8、更改配置(這三個文件修改的東西一樣):
# vim /usr/lib64/yp/ypxfr_1perday
# vim /usr/lib64/yp/ypxfr_1perhour
# vim /usr/lib64/yp/ypxfr_2perday
$YPBINDIR/ypxfr $map -h tra-dindin-nis-master

當master有變更時可以在slave上手動執行以下兩條命令立即同步
/usr/lib64/yp/ypxfr –h tra-dindin-nis-master passwd.byname
/usr/lib64/yp/ypxfr –h tra-dindin-nis-master passwd.byuid

 

三:客戶端的設置
A;安裝所需的軟件
#yum -y install ypbind yp-tools portreserver
B;修改必要的配置文件


1,直接命令行下設置nis域名,臨時生效

#nisdomainname sun.com.cn

2,每次開機時都需要啟動這個nis域名的話,直接把它寫入/etc/rc.d/rc.local中

內容和上面一下不在寫

3,啟動nis時就自動設置好nis域,可以設置/etc/sysconfig/network這個文件

內容和上面一下不在寫

2、啟動ypbind來連接至nis server,修改如下配置文件
1,#vim /etc/nsswitch.conf

 

 

 2,#vim /etc/sysconfig/authconfig

 

 

 3,#vim /etc/pam.d/system-auth

 

 

 

4,#vim /etc/yp.conf

domain sun.com.cn server 192.168.x.1
domain sun.com.cn server 192.168.x.2
ypserver 192.168.x.1
ypserver 192.168.x.2

 

設置完成后,再啟動ypbind (啟動之前也要先啟動rpcbind服務 一般這個都系統都安裝好了的 我們只需要啟動就可以)
#/etc/init.d/rpcbind start
#/etc/init.d/ypbind start
在客戶端查看nis賬戶中的nisuser1用戶 (客戶端本地是沒有這個用戶的)

[root@localhost ~]# id nisuser1
uid=1001(nisuser1) gid=1001(nisuser1) groups=1001(nisuser1)

 

 

 

 /etc/init.d/ypserv stop

 

在客戶端查看nisuser1用戶

 

 [root@localhost ~]# id nisuser1
uid=1001(nisuser1) gid=1001(nisuser1) groups=1001(nisuser1)

 

依然可以查到 說明nis主從服務搭建成功

 


免責聲明!

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



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