NIS基礎(chǔ)
作者:佚名
NIS是集中控制幾個(gè)系統(tǒng)管理數(shù)據(jù)庫的網(wǎng)絡(luò)用品。NIS簡(jiǎn)化了UNIX和LINUX桌面客戶的管理工作,客戶端利用它可以使用中心服務(wù)器的管理文件。桌面系統(tǒng)的用戶無需建立他們自己的/etc/passwd,他們只簡(jiǎn)單的使用維護(hù)在NIS服務(wù)器的文件即可。
網(wǎng)絡(luò)信息服務(wù)(NIS)
(Network Information Service)
NIS是集中控制幾個(gè)系統(tǒng)管理數(shù)據(jù)庫的網(wǎng)絡(luò)用品。NIS簡(jiǎn)化了UNIX和LINUX桌面客戶的管理工作,客戶端利用它可以使用中心服務(wù)器的管理文件。桌面系統(tǒng)的用戶無需建立他們自己的/etc/passwd,他們只簡(jiǎn)單的使用維護(hù)在NIS服務(wù)器的文件即可。
提到NIS不得不先說明一下WINDOWS2000的域控制器,在局域網(wǎng)內(nèi)有一臺(tái)WIN2000域控制器,下面有一些機(jī)器加入到這個(gè)域中,在下的機(jī)器登錄時(shí),有一個(gè)選項(xiàng)是選擇登入到本機(jī)還時(shí)登入到域內(nèi),登入本地的密碼有本機(jī)控制,但是如果登入域內(nèi),密碼由域控制器負(fù)責(zé)管理。
LINUX也是操作系統(tǒng),跟WIN2000沒有本質(zhì)的區(qū)別,所以仔細(xì)讀上段話,就能理解NIS是原理是什么樣了,這時(shí)出現(xiàn)了一個(gè)重要的文件/etc/nsswitch.conf
NIS是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng),ypbind是定義NIS服務(wù)器的客戶端進(jìn)程。一旦確定了服務(wù)器位置,客戶機(jī)綁定到了服務(wù)器上,所以客戶端的住處查詢都發(fā)往服務(wù)器。ypserv是回答客戶端查詢的服務(wù)器進(jìn)程。
安裝ypbind客戶端
rpm -ivh ypbind*
這沒有什么好說的。
配置NIS客戶端
進(jìn)程ypbind這客記機(jī)的NIS域定位服務(wù)器,NIS域包括所有NIS服務(wù)器和客戶機(jī)。它與DNS不同,盡管有些管理員將NIS域名等同于DNS的域名。NIS域名只對(duì)那NIS服務(wù)器和客戶機(jī)起作用。
有兩種方式配置NIS域名:
nisdomainname 定義顯示NIS域名
yp.conf文件配置NIS域名。
#nisdomainname gogo
#nisdomainname
gogo
默認(rèn)地,ypbind使用nisdomainname命令返回NIS域名,向NIS服務(wù)器發(fā)出請(qǐng)求時(shí)在網(wǎng)絡(luò)內(nèi)廣播該地址。
yp.conf文件
/etc/yp.conf定義了yp.conf配置。如果找不到y(tǒng)p.conf文件,ypconf進(jìn)程使用nisdomainname 命令返回的NIS域名,廣播定位NIS服務(wù)器。ypbind將綁定到第一個(gè)相應(yīng)請(qǐng)求的服務(wù)器上。
ypserver hostname
domain nisdomain broadcast | server hostname
========
hostname,nisdomain字符為變量。
使用ypserver配置選項(xiàng)為客戶機(jī)指定服務(wù)器。yp.conf文件包括ypserver選項(xiàng)時(shí),客戶機(jī)使用命令nisdomainname返回的NIS域名,向ypserver命令的hostname字段指定的服務(wù)器發(fā)出請(qǐng)求。/etc/hosts文件中必須包含該主機(jī)的IP地址,還記得我說過什么了嗎,DNS是取代的HOSTS的,在DNS中設(shè)定也是可以的。ypserver選項(xiàng)強(qiáng)制客戶機(jī)連接到特定的服務(wù)器上。
在yp.conf文件中使用domain選項(xiàng)定義了NIS域名,指出客戶機(jī)是廣播定位還是直接向服務(wù)器發(fā)送請(qǐng)求。
example:
#/etc/yp.conf
#
domain first server jh
=========
first作為域名,jh是這個(gè)域的服務(wù)器 jh在hosts中必須有相對(duì)應(yīng)的IP地址
或者jh IN A 192.168.1.1還記得這條指令是干什么的嗎?
?。?
創(chuàng)建NIS服務(wù)器
安裝ypserv
rpm -ivh ypserv*
?。?
NIS服務(wù)器提供的數(shù)據(jù)庫,稱為NIS映射表.
創(chuàng)建獨(dú)立服務(wù)器
如果用戶只有一個(gè)NIS域服務(wù)器,建立獨(dú)立服務(wù)器,如果用戶NIS域中有多個(gè)服務(wù)器,就需要選擇其中一個(gè)作為該域的主服務(wù)器。其他作為從服務(wù)器。
用戶可以使用make命令初始化獨(dú)立服務(wù)器,建立NIS映射表,文件/var/yp/Makefile包含了創(chuàng)建數(shù)據(jù)庫的命令。
example:
#nsidomainname first
#cd /var/yp
#make
gamke[1]:Entering directory '/var/yp/terns'
Updateing passd.byname......
Updateing passwd.byuid.......
............
........
.....
...
?。?
創(chuàng)新主從服務(wù)器
使用ypinit命令初始化主服務(wù)器,常見NIS映射表。默認(rèn)地.ypinit同make命令給出的操作一樣。要?jiǎng)?chuàng)建相對(duì)于從服務(wù)器的主服務(wù)器,用戶需要編輯/var/yp/Makefile文件。在Makefile文件中找到NOPUSH設(shè)置為NOPUSH=false.
修改后,運(yùn)行ypinit -m
exmpale:
#nisdomwiname first
#cd /var/yp
#/usr/lib/yp/ypinit m
...........
next host to add:1111.first.myhome.com
next host to add:2222.first.myhome.com
..............
............
..............
is this correct? [y/n]y
..........
.........
updateing passwd.byname.........
.............
..........
...........
從服務(wù)器配置比主服務(wù)器簡(jiǎn)單。主服務(wù)器保存了所有的映射表。從服務(wù)器只需知道哪個(gè)是主服務(wù)器即可。ypinit -s 配置從服務(wù)器。
example:
#/usr/lib/yp/ypinit -s salve
salve的IP地址也必須保存在hosts中。
?。?
安全性
用戶可以在/var/yp/securenets文件中定義服務(wù)器的安全性能。
example:
255.255.255.0 192.168.1.0
授權(quán)192.168.1.0子網(wǎng)的用戶可以訪問服務(wù)器。
-----------------
ypserv.conf文件
用戶必須使用securenets文件,未必用ypserv.conf定義安全性。
語法如下:
host:map:security:[mangle[]]
字段如下
host 授權(quán)或禁止訪問的計(jì)算機(jī),它由地址/掩碼對(duì)確定.例如 192.168.1.0/255.255.255.0 . *表示所有主機(jī)
map 該字段表示訪問的NIS映射表項(xiàng)名稱。例如:passwd.byuid。*表示映射表 中所有的字段都可用。
security 授權(quán)訪問類型
none 允許訪問,不加強(qiáng)安全性。
port 允許特權(quán)端口訪問。只接收源端口小于1024的連接。
deny 禁止訪問。
des 訪問時(shí)需要數(shù)字加密標(biāo)準(zhǔn)(DES)認(rèn)證。
[mangle[]] 指定應(yīng)該在發(fā)出響應(yīng)之前用“X”覆蓋掉的字段(不明白)
example:
# Host : MAP : Security : mangle
192.168.1.0/255.255.255.0 : * :none :no
* :* :deny :no
啟動(dòng)服務(wù)器
/etc/init.d/ypserv restart
啟動(dòng)NIS客戶端
/etc/init.d/ypbind restart
測(cè)試NIS
NIS客戶端應(yīng)該綁定到服務(wù)器。ypwhich命令可以檢測(cè)客戶端是否正確的連接到服務(wù)器。
如果客戶機(jī)正確的綁定到服務(wù)器,用ypcat檢測(cè)服務(wù)器提供的信息。
NIS與DNS是兩會(huì)事,大家一定要搞清楚。雖然都有可能涉及到域名。但確實(shí)是兩會(huì)事,他們之間會(huì)有一些連系。但絕不可以混在一起。切記,切記。
====================================
nsswitch.conf文件
nsswitch.conf文件不僅能處理主機(jī)表和DNS之間的優(yōu)先次序,還能處理其它的問題。它為幾個(gè)不同的系統(tǒng)管理數(shù)據(jù)庫定義來源(多看幾篇這句話,“幾個(gè)不同的系統(tǒng)管理數(shù)據(jù)庫”,可以是DNS,NIS,大家想一想)
由nsswitch.conf控制的數(shù)據(jù)庫
alias EMAIL別名
ehters 用于RARP的以太網(wǎng)地址。
hosts 主機(jī)名和IP地址
password 用戶帳號(hào)信息。
還有許多,沒有列出來。
使用不帶NIS的nsswitch.conf example:
password: files
shadow: files
...........
hosts: dns files
#這句很重要,dns在先,files在后,這里的files指的是/etc/hosts文件,如果有客戶端查詢的時(shí)候,先找dns,再找files。順序很重要。
aliases: files
.........
.........
.........
使用帶NIS的nsswitch.conf example:
hosts: files nis dns
protocols: nis files
.........
........
........
控制選擇過程
nsswitch.conf文件提供了幾個(gè)可用于查詢測(cè)試的狀態(tài)關(guān)鍵字:
success(成功) 查詢返回所期望的結(jié)果。該狀態(tài)的缺省的動(dòng)作是返回結(jié)果給提交查詢的應(yīng)用程序(想一下,在我的DNS第二講,說到解析器,就可以是提交查詢的應(yīng)用程序,不過他是DNS查詢是了),然后退出查詢過程。
nofound(沒有找到) 雖然查詢工作正常,但所期望值沒有找到。缺省的動(dòng)作是查詢下一行的源。
unavail(不可用) 提交查詢的源不可用。例,名稱服務(wù)器沒有運(yùn)行。
tryagain(重度) 源暫時(shí)不可用。缺省的動(dòng)作是繼續(xù)向下一個(gè)源提交查詢。
有兩個(gè)關(guān)鍵字可以識(shí)別缺省的動(dòng)作:return和continue。return告訴解析器返回值給應(yīng)用程序并結(jié)束查詢。continue告訴解析器繼續(xù)向下一個(gè)源提交查詢。
狀態(tài)和動(dòng)作關(guān)鍵字可以結(jié)合起來,加到nsswitch.conf文件的源單中,以控制查詢過程何時(shí)移到下一個(gè)源。
狀態(tài)檢查的語法是:
[ ( ! ? status=action ) + ]
問號(hào)(?)代表任何狀態(tài)值;嘆號(hào)(?。?duì)狀態(tài)值取反。!SUCCESS是不成功的意思。方括號(hào)"[]"用于包括整個(gè)條件語句。圓括號(hào)"()"是可選的,只用來包含每個(gè)測(cè)試條件,可以有多個(gè)條件,每個(gè)條件用圓括號(hào)包含,之間用加號(hào)連接。
例如:
[ ( NOFOUND=RETURN ) + ( TRYAGAIN+TRETURN) ]
其實(shí)就是C語言中的“與”“或”“非”的關(guān)系。
下面是nsswitch.conf中的主機(jī)一行:
hosts: dns [ !UNAVAIL=return ] files
說明了UNAVAIL之外的所有狀態(tài),解析器應(yīng)該將返回值給應(yīng)用程序,然后退出。
只有當(dāng)DNS名稱服務(wù)器沒有運(yùn)行的時(shí)候,解析器才能向主機(jī)表查詢。如果有條件語句改變,缺省的動(dòng)作卞會(huì)起作用,UNAVAI的缺省動(dòng)作是continue。
(Network Information Service)
NIS是集中控制幾個(gè)系統(tǒng)管理數(shù)據(jù)庫的網(wǎng)絡(luò)用品。NIS簡(jiǎn)化了UNIX和LINUX桌面客戶的管理工作,客戶端利用它可以使用中心服務(wù)器的管理文件。桌面系統(tǒng)的用戶無需建立他們自己的/etc/passwd,他們只簡(jiǎn)單的使用維護(hù)在NIS服務(wù)器的文件即可。
提到NIS不得不先說明一下WINDOWS2000的域控制器,在局域網(wǎng)內(nèi)有一臺(tái)WIN2000域控制器,下面有一些機(jī)器加入到這個(gè)域中,在下的機(jī)器登錄時(shí),有一個(gè)選項(xiàng)是選擇登入到本機(jī)還時(shí)登入到域內(nèi),登入本地的密碼有本機(jī)控制,但是如果登入域內(nèi),密碼由域控制器負(fù)責(zé)管理。
LINUX也是操作系統(tǒng),跟WIN2000沒有本質(zhì)的區(qū)別,所以仔細(xì)讀上段話,就能理解NIS是原理是什么樣了,這時(shí)出現(xiàn)了一個(gè)重要的文件/etc/nsswitch.conf
NIS是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng),ypbind是定義NIS服務(wù)器的客戶端進(jìn)程。一旦確定了服務(wù)器位置,客戶機(jī)綁定到了服務(wù)器上,所以客戶端的住處查詢都發(fā)往服務(wù)器。ypserv是回答客戶端查詢的服務(wù)器進(jìn)程。
安裝ypbind客戶端
rpm -ivh ypbind*
這沒有什么好說的。
配置NIS客戶端
進(jìn)程ypbind這客記機(jī)的NIS域定位服務(wù)器,NIS域包括所有NIS服務(wù)器和客戶機(jī)。它與DNS不同,盡管有些管理員將NIS域名等同于DNS的域名。NIS域名只對(duì)那NIS服務(wù)器和客戶機(jī)起作用。
有兩種方式配置NIS域名:
nisdomainname 定義顯示NIS域名
yp.conf文件配置NIS域名。
#nisdomainname gogo
#nisdomainname
gogo
默認(rèn)地,ypbind使用nisdomainname命令返回NIS域名,向NIS服務(wù)器發(fā)出請(qǐng)求時(shí)在網(wǎng)絡(luò)內(nèi)廣播該地址。
yp.conf文件
/etc/yp.conf定義了yp.conf配置。如果找不到y(tǒng)p.conf文件,ypconf進(jìn)程使用nisdomainname 命令返回的NIS域名,廣播定位NIS服務(wù)器。ypbind將綁定到第一個(gè)相應(yīng)請(qǐng)求的服務(wù)器上。
ypserver hostname
domain nisdomain broadcast | server hostname
========
hostname,nisdomain字符為變量。
使用ypserver配置選項(xiàng)為客戶機(jī)指定服務(wù)器。yp.conf文件包括ypserver選項(xiàng)時(shí),客戶機(jī)使用命令nisdomainname返回的NIS域名,向ypserver命令的hostname字段指定的服務(wù)器發(fā)出請(qǐng)求。/etc/hosts文件中必須包含該主機(jī)的IP地址,還記得我說過什么了嗎,DNS是取代的HOSTS的,在DNS中設(shè)定也是可以的。ypserver選項(xiàng)強(qiáng)制客戶機(jī)連接到特定的服務(wù)器上。
在yp.conf文件中使用domain選項(xiàng)定義了NIS域名,指出客戶機(jī)是廣播定位還是直接向服務(wù)器發(fā)送請(qǐng)求。
example:
#/etc/yp.conf
#
domain first server jh
=========
first作為域名,jh是這個(gè)域的服務(wù)器 jh在hosts中必須有相對(duì)應(yīng)的IP地址
或者jh IN A 192.168.1.1還記得這條指令是干什么的嗎?
?。?
創(chuàng)建NIS服務(wù)器
安裝ypserv
rpm -ivh ypserv*
?。?
NIS服務(wù)器提供的數(shù)據(jù)庫,稱為NIS映射表.
創(chuàng)建獨(dú)立服務(wù)器
如果用戶只有一個(gè)NIS域服務(wù)器,建立獨(dú)立服務(wù)器,如果用戶NIS域中有多個(gè)服務(wù)器,就需要選擇其中一個(gè)作為該域的主服務(wù)器。其他作為從服務(wù)器。
用戶可以使用make命令初始化獨(dú)立服務(wù)器,建立NIS映射表,文件/var/yp/Makefile包含了創(chuàng)建數(shù)據(jù)庫的命令。
example:
#nsidomainname first
#cd /var/yp
#make
gamke[1]:Entering directory '/var/yp/terns'
Updateing passd.byname......
Updateing passwd.byuid.......
............
........
.....
...
?。?
創(chuàng)新主從服務(wù)器
使用ypinit命令初始化主服務(wù)器,常見NIS映射表。默認(rèn)地.ypinit同make命令給出的操作一樣。要?jiǎng)?chuàng)建相對(duì)于從服務(wù)器的主服務(wù)器,用戶需要編輯/var/yp/Makefile文件。在Makefile文件中找到NOPUSH設(shè)置為NOPUSH=false.
修改后,運(yùn)行ypinit -m
exmpale:
#nisdomwiname first
#cd /var/yp
#/usr/lib/yp/ypinit m
...........
next host to add:1111.first.myhome.com
next host to add:2222.first.myhome.com
..............
............
..............
is this correct? [y/n]y
..........
.........
updateing passwd.byname.........
.............
..........
...........
從服務(wù)器配置比主服務(wù)器簡(jiǎn)單。主服務(wù)器保存了所有的映射表。從服務(wù)器只需知道哪個(gè)是主服務(wù)器即可。ypinit -s 配置從服務(wù)器。
example:
#/usr/lib/yp/ypinit -s salve
salve的IP地址也必須保存在hosts中。
?。?
安全性
用戶可以在/var/yp/securenets文件中定義服務(wù)器的安全性能。
example:
255.255.255.0 192.168.1.0
授權(quán)192.168.1.0子網(wǎng)的用戶可以訪問服務(wù)器。
-----------------
ypserv.conf文件
用戶必須使用securenets文件,未必用ypserv.conf定義安全性。
語法如下:
host:map:security:[mangle[]]
字段如下
host 授權(quán)或禁止訪問的計(jì)算機(jī),它由地址/掩碼對(duì)確定.例如 192.168.1.0/255.255.255.0 . *表示所有主機(jī)
map 該字段表示訪問的NIS映射表項(xiàng)名稱。例如:passwd.byuid。*表示映射表 中所有的字段都可用。
security 授權(quán)訪問類型
none 允許訪問,不加強(qiáng)安全性。
port 允許特權(quán)端口訪問。只接收源端口小于1024的連接。
deny 禁止訪問。
des 訪問時(shí)需要數(shù)字加密標(biāo)準(zhǔn)(DES)認(rèn)證。
[mangle[]] 指定應(yīng)該在發(fā)出響應(yīng)之前用“X”覆蓋掉的字段(不明白)
example:
# Host : MAP : Security : mangle
192.168.1.0/255.255.255.0 : * :none :no
* :* :deny :no
啟動(dòng)服務(wù)器
/etc/init.d/ypserv restart
啟動(dòng)NIS客戶端
/etc/init.d/ypbind restart
測(cè)試NIS
NIS客戶端應(yīng)該綁定到服務(wù)器。ypwhich命令可以檢測(cè)客戶端是否正確的連接到服務(wù)器。
如果客戶機(jī)正確的綁定到服務(wù)器,用ypcat檢測(cè)服務(wù)器提供的信息。
NIS與DNS是兩會(huì)事,大家一定要搞清楚。雖然都有可能涉及到域名。但確實(shí)是兩會(huì)事,他們之間會(huì)有一些連系。但絕不可以混在一起。切記,切記。
====================================
nsswitch.conf文件
nsswitch.conf文件不僅能處理主機(jī)表和DNS之間的優(yōu)先次序,還能處理其它的問題。它為幾個(gè)不同的系統(tǒng)管理數(shù)據(jù)庫定義來源(多看幾篇這句話,“幾個(gè)不同的系統(tǒng)管理數(shù)據(jù)庫”,可以是DNS,NIS,大家想一想)
由nsswitch.conf控制的數(shù)據(jù)庫
alias EMAIL別名
ehters 用于RARP的以太網(wǎng)地址。
hosts 主機(jī)名和IP地址
password 用戶帳號(hào)信息。
還有許多,沒有列出來。
使用不帶NIS的nsswitch.conf example:
password: files
shadow: files
...........
hosts: dns files
#這句很重要,dns在先,files在后,這里的files指的是/etc/hosts文件,如果有客戶端查詢的時(shí)候,先找dns,再找files。順序很重要。
aliases: files
.........
.........
.........
使用帶NIS的nsswitch.conf example:
hosts: files nis dns
protocols: nis files
.........
........
........
控制選擇過程
nsswitch.conf文件提供了幾個(gè)可用于查詢測(cè)試的狀態(tài)關(guān)鍵字:
success(成功) 查詢返回所期望的結(jié)果。該狀態(tài)的缺省的動(dòng)作是返回結(jié)果給提交查詢的應(yīng)用程序(想一下,在我的DNS第二講,說到解析器,就可以是提交查詢的應(yīng)用程序,不過他是DNS查詢是了),然后退出查詢過程。
nofound(沒有找到) 雖然查詢工作正常,但所期望值沒有找到。缺省的動(dòng)作是查詢下一行的源。
unavail(不可用) 提交查詢的源不可用。例,名稱服務(wù)器沒有運(yùn)行。
tryagain(重度) 源暫時(shí)不可用。缺省的動(dòng)作是繼續(xù)向下一個(gè)源提交查詢。
有兩個(gè)關(guān)鍵字可以識(shí)別缺省的動(dòng)作:return和continue。return告訴解析器返回值給應(yīng)用程序并結(jié)束查詢。continue告訴解析器繼續(xù)向下一個(gè)源提交查詢。
狀態(tài)和動(dòng)作關(guān)鍵字可以結(jié)合起來,加到nsswitch.conf文件的源單中,以控制查詢過程何時(shí)移到下一個(gè)源。
狀態(tài)檢查的語法是:
[ ( ! ? status=action ) + ]
問號(hào)(?)代表任何狀態(tài)值;嘆號(hào)(?。?duì)狀態(tài)值取反。!SUCCESS是不成功的意思。方括號(hào)"[]"用于包括整個(gè)條件語句。圓括號(hào)"()"是可選的,只用來包含每個(gè)測(cè)試條件,可以有多個(gè)條件,每個(gè)條件用圓括號(hào)包含,之間用加號(hào)連接。
例如:
[ ( NOFOUND=RETURN ) + ( TRYAGAIN+TRETURN) ]
其實(shí)就是C語言中的“與”“或”“非”的關(guān)系。
下面是nsswitch.conf中的主機(jī)一行:
hosts: dns [ !UNAVAIL=return ] files
說明了UNAVAIL之外的所有狀態(tài),解析器應(yīng)該將返回值給應(yīng)用程序,然后退出。
只有當(dāng)DNS名稱服務(wù)器沒有運(yùn)行的時(shí)候,解析器才能向主機(jī)表查詢。如果有條件語句改變,缺省的動(dòng)作卞會(huì)起作用,UNAVAI的缺省動(dòng)作是continue。
nsswich.conf文件已經(jīng)取代了hosts.conf,因?yàn)樗梢蕴峁└嗟馁Y源控制方式。LINUX系統(tǒng)中通常這兩個(gè)文件都有,但實(shí)際上起作用的是nsswitch.conf文件。
【編輯推薦】
責(zé)任編輯:龐桂玉
來源:
Baidu