linux下用NIS配置域服務(wù)器
linux 下用NIS 配置域服務(wù)器NIS 概述:NIS ,是Network Information Services 的簡寫,意為網(wǎng)絡(luò)信息服務(wù) ;其最初是由Sun Microsystems 組織開發(fā)
linux 下用NIS 配置域服務(wù)器
NIS 概述:
NIS ,是Network Information Services 的簡寫,意為網(wǎng)絡(luò)信息服務(wù) ;其最初是由Sun Microsystems 組織開發(fā), 主要目標(biāo)是用于UNIX 系統(tǒng)的集中管理。 目前,它基本上已經(jīng)成為了業(yè)界標(biāo)準(zhǔn); 所有主流的類 UNIX 系統(tǒng) (Solaris,HP-UX,AIX,Linux,NetBSD,OpenBSD,FreeBSD等等) 都支持 NIS 。
NIS 原來的名稱為黃頁(Yellow Pages),但由于商標(biāo)的問題,Sun 將其改名為現(xiàn)在的名字。NIS 是一個基于 RPC 的客戶機(jī)/服務(wù)器系統(tǒng), 它允許在一個 NIS 域中的一組機(jī)器共享一系列配置文件。 這樣, 系統(tǒng)管理員就可以配置只包含最基本配置數(shù)據(jù)的 NIS 客戶機(jī)系統(tǒng), 并在單點(diǎn)上(主NIS 服務(wù)器)增加、刪除或修改配置數(shù)據(jù)。
在 NIS 環(huán)境中, 有三種類型的主機(jī): 主服務(wù)器(master), 從服務(wù)器(slave),和客戶機(jī)(client)。服務(wù)器的作用是充當(dāng)主機(jī)配置信息的中央數(shù)據(jù)庫,保存著用戶帳號、組帳號等配置信息的權(quán)威副本,而從服務(wù)器則是保存這些信息的冗余副本。客戶機(jī)將使用這些信息。
配置示例:
本例中網(wǎng)絡(luò)模型如下:
server 192.168.0.16 NIS主服務(wù)器
client 192.168.0.128 NIS客戶端
一、服務(wù)端的設(shè)定
1、設(shè)定NIS 域名
#nisdomainname benet
#vi /etc/sysconfig/network
添加:
NISDOMAIN=benet
#vi /etc/rc.local
添加:
/sbin/nisdomainname benet
2、默認(rèn)情況下,RHEL4沒有安裝ypserv 包,此軟件在第一張光盤上,安裝上即可
查看是否已經(jīng)安裝ypserv
# rpm -qa |grep ^yp
ypbind-1.17.2-3
yp-tools-2.8-7
,掛載第一張光盤并安裝ypserv
# mount /dev/cdrom /media/cdrom
# rpm -ivh /media/cdrom/RedHat/RPMS/ypserv-2.13-5.i386.rpm
warning: /media/cdrom/RedHat/RPMS/ypserv-2.13-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100]
1:ypserv ########################################### [100]
3、主配置文件/etc/ypserv.conf
此部分配置比較簡單,大部分保持默認(rèn)即可,最后一段來定義訪問安全性。但一般情況下,管理員應(yīng)該使用securenets 文件,未必用ypserv.conf 定義安全性。
這部分語法如下:
[Host ] : [Domain ] : [Map ] : [Security]
[主機(jī)名稱/IP] : [NIS域名稱] : [可用資料庫名稱] : [安全限制]
字段如下:
host :授權(quán)或禁止訪問的計(jì)算機(jī),它由地址/掩碼對確定. 例如 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 :禁止訪問;
如本實(shí)驗(yàn)中,我們應(yīng)該在主配置文件尾設(shè)置如下項(xiàng):
127.0.0.0/255.255.255.0 : * : * : none
192.168.0.0/255.255.255.0 : * : * : none
* : * : * : deny
4、編輯 /etc/yp.conf 文件
NIS 服務(wù)器同時也是它們自己的NIS 客戶端,所以你需要編輯NIS 客戶端配置文件/etc/yp.conf,將其記錄域的NIS 服務(wù)器同時也是主機(jī)。
# vi /etc/yp.conf
添加:
ypserver 127.0.0.1
5、啟動rpc 、ypserv 、yppasswdd 等進(jìn)程
# service portmap start
Starting portmap: [ OK ]
,# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
# service ypserv start
Starting YP server services: [ OK ]
# rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
#
service yppasswdd start
Starting YP passwd service: [ OK ]
# rpcinfo -u localhost yppasswdd
program 100009 version 1 ready and waiting
# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
100004 2 udp 613 ypserv
100004 1 udp 613 ypserv
100004 2 tcp 616 ypserv
100004 1 tcp 616 ypserv
100009 1 udp 628 yppasswdd
6、初始化NIS 域
接下來使用 ypinit 命令去創(chuàng)立域maps 文件
# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. server.mshome.net is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a .
next host to add: server.mshome.net
next host to add:
The current list of NIS servers looks like this:
server
,Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/benet/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/benet'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/benet'
server has been set up as a NIS master server.
Now you can run ypinit -s server on all slave server.
7、設(shè)置/var/yp/securenets,配置安全訪問,添加如下內(nèi)容(你可以根據(jù)自己的網(wǎng)絡(luò)而作相應(yīng)的修改) :
host 127.0.0.1
255.255.255.0 192.168.0.0
說明:此文件用來定義客戶端的對NIS 服務(wù)器的訪問權(quán)限,它使用netmask/network來定義,實(shí)際使用中需要將其間的'/'符號換為空格;同時,如果僅用來定義某個主機(jī)的訪問,需要將掩碼換為'host' 指令。
8、啟動客戶端進(jìn)程,并測試NIS 服務(wù)器
# service ypbind start
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server..
[root@server ~]# yptest
Test 1: domainname
Configured domainname is "benet"
Test 2: ypbind
Used NIS server: 192.168.0.16
………………
………………
,# ypwhich -x
Use "ethers" for map "ethers.byname"
Use "aliases" for map "mail.aliases"
Use "services" for map "services.byname"
Use "protocols" for map "protocols.bynumber"
Use "hosts" for map "hosts.byname"
Use "networks" for map "networks.byaddr"
Use "group" for map "group.byname"
Use "passwd" for map "passwd.byname"
#ypcat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash 說明:redhat 為手動建立的系統(tǒng)帳號
# ypmatch redhat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
二、客戶端的設(shè)定
1、設(shè)定NIS 域名
#nisdomainname benet
#vi /etc/sysconfig/network
添加:
NISDOMAIN=benet
#vi /etc/rc.local
添加:
/sbin/nisdomainname benet
2、查看是否已經(jīng)安裝相應(yīng)的rpm 包ypbind 和yptools ,RHEL4默認(rèn)已經(jīng)安裝
# rpm -qa |grep ^yp
ypbind-1.17.2-3
yp-tools-2.8-7
3、設(shè)置主配置文件/etc/yp.conf
#vi /etc/yp.conf
添加如下行:
domain benet server 192.168.0.16
其語法格式為:
domain NISDOMAIN server HOSTNAME
其中NISDOMAIN 為你的NIS 域名,HOSTNAME 為你的NIS 服務(wù)器名字,推薦使用IP ;或者你也可以設(shè)置/etc/hosts文件,使用客戶端能解析NIS Server的主機(jī)名稱,此處則可以寫作服務(wù)器的主機(jī)名;
,4、設(shè)置/etc/nsswitch.conf文件
找到如下項(xiàng):
passwd: files
shadow: files
group: files
#hosts: db files ldap nis dns
hosts: files dns
將其修改為:
passwd: files nis
shadow: files nis
group: files nis
#hosts: db files ldap nis dns
hosts: files nis dns
5、查看客戶端portmap 進(jìn)程的啟動狀況,確定無誤后啟動其ypbind 進(jìn)程:
# service portmap status
portmap (pid 1774) is running...
# service ypbind start
Shutting down NIS services: [ OK ]
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server.
將ypbind 設(shè)置為開機(jī)自動啟動
#chkconfig --level 2345 ypbind on
6、測試客戶端的連接
# ypcat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
# ypmatch redhat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
# ypwhich -x
Use "ethers" for map "ethers.byname"
Use "aliases" for map "mail.aliases"
Use "services" for map "services.byname"
Use "protocols" for map "protocols.bynumber"
Use "hosts" for map "hosts.byname"
Use "networks" for map "networks.byaddr"
,Use "group" for map "group.byname"
Use "passwd" for map "passwd.byname"
# ypcat hosts
192.168.0.16 server
127.0.0.1 localhost.localdomain localhost
7、配置客戶端在啟動時登錄到NIS 域
# vi /etc/sysconfig/authconfig
找到如下行:
USENIS=no
修改為:
USENIS=yes
8、在服務(wù)器添加測試用戶
#userdd nisuser
#passwd nisuer
并使用如下命令重建maps 數(shù)據(jù)庫, 其使用方法見服務(wù)端設(shè)定部分 # /usr/lib/yp/ypinit -m
三、重新啟動客戶端來測試結(jié)果
1、客戶端登錄:
# ssh -l nisuser 192.168.0.128
nisuser@192.168.0.128's password:
Last login: Wed Jul 11 17:59:14 2007 from server
Could not chdir to home directory /home/nisuser: No such file or directory -bash-3.00$
2、在服務(wù)端輸出/home目錄,以使得客戶端漫游配置文件:
# vi /etc/exports
/home 192.168.0.0/24(rw,no_root_squash,async)
啟動nfs 服務(wù):
# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
設(shè)置其開機(jī)自動啟動
# chkconfig --level 2345 nfs on
,3、客戶端的設(shè)定
以root 用戶登錄客戶端,掛載服務(wù)端的/home目錄至本機(jī)的/home目錄, 而后測試使用nisuser 用戶登錄
# ssh -l nisuser 192.168.0.128
nisuser@192.168.0.128's password:
[nisuser@client ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .kde
[nisuser@client ~]$ ls /home
lost found nisuser redhat
編輯/etc/fstab文件,使其開機(jī)能自動掛載
192.168.0.16:/home /home ext3 defaults 0 0
4、在客戶端使用yppasswd 命令修改個人密碼
[nisuser@client ~]$ yppasswd
Changing NIS account information for nisuser on server.
Please enter old password: <----此處要輸入舊密碼
Changing NIS password for nisuser on server.
Please enter new password: <----新密碼
Please retype new password: <----確認(rèn)新密碼
The NIS password has been changed on server. <----修改的確認(rèn)信息