- 论坛徽章:
- 5
|
我自己搭建了三台虚拟机,NIS Master , NIS Slave , NIS Client
NIS Master : 192.168.18.21
NIS Slave : 192.168.18.22
NIS Client : 192.168.18.23
我先说下我的问题,我配置完成后,Master上面新建的帐户user1,user2,user3都可以在Master上面id到信息,即
[root@master log]# id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1)
但是在Slave向Master同步用户的数据库文件后,可以使用如下命令在Slave上面查看到
[root@slave var]# ypcat -h localhost passwd.byname
user3 1$6Jk4toDH$pzUbaXqkG1KaaLmr9r8ef/:1003:1003::/home/user3:/bin/bash
user1 1$i51nyPc8$FsEJAt8Eye40k1uZOehE00:1001:1001::/home/user1:/bin/bash
user2 1$wPP3KMxv$NkGIbPpiUCQrMyonWiNup1:1002:1002::/home/user2:/bin/bash
但是在Slave上面却id不到三个用户的信息,例如:
[root@slave var]# id user1
id: user1: No such user
下面贴出我的Master和Slave的安装及配置,请各位大侠查看,到底是哪里出了问题:
_____________________________________________________________________
NIS Master的配置:
1. 设定NIS Server的域名称
[root@master ~]# vi /etc/sysconfig/network
在最下面增加这两行:
NISDOMAIN=ibm
2. 主要配置文件
[root@master Server]# vi /etc/ypserv.conf
在最后一行加入:
127.0.0.0/255.255.255.0 : * : * : none
192.168.18.0/255.255.255.0 : * : * : none
* : * : * : deny
3. 设定主机名称与IP的对应
[root@master Server]# vi /etc/hosts
增加三行:
192.168.18.21 master
192.168.18.22 slave
192.168.18.23 client
4. 启动相关的服务
[root@master Server]# vi /etc/sysconfig/yppasswdd
YPPASSWDD_ARGS="--port 1012" 找到这个设定值,修改内容成这样
[root@master Server]# /etc/init.d/ypserv start
Setting NIS domain name ibm: [ OK ]
Starting YP server services: [ OK ]
[root@master Server]# /etc/init.d/yppasswdd start
Starting YP passwd service: [ OK ]
[root@master Server]# chkconfig ypserv on
[root@master Server]# chkconfig yppasswdd on
注意,主要的 NIS 服務是 ypserv ,不過,如果要提供 NIS 用戶端的密碼修改功能的話, 最好還是得要啟動 yppasswdd 這個服務才好。在啟動完畢後,我們可以利用 rpcinfo 來檢查看看:
[root@master Server]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 875 status
100024 1 tcp 878 status
100004 2 udp 684 ypserv
100004 1 udp 684 ypserv
100004 2 tcp 687 ypserv
100004 1 tcp 687 ypserv
100009 1 udp 691 yppasswdd
[root@master Server]# rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
5. 新建帐号并建立数据库
[root@master Server]# useradd -u 1001 user1
[root@master Server]# useradd -u 1002 user2
[root@master Server]# useradd -u 1003 user3
[root@master Server]# echo user1 | passwd --stdin user1
[root@master Server]# echo user2 | passwd --stdin user2
[root@master Server]# echo user3 | passwd --stdin user3
在将建立的帐号转成数据库文件之前,我们先做几个操作:
[root@master Server]# vi /var/yp/Makefile
将NOPUSH=true改成NOPUSH=false
这样设置之后可以将数据库推给其它的slave服务器,但是必须要告诉Master要推出去的数据库是哪台服务器,因此还需要修改/var/yp/ypservers文件
修改/var/yp/ypservers文件有两种方式,我这里使用是在建立数据库文件的时候添加服务器:
接下来,将建立的帐号转成数据库文件,转换的动作直接通过
[root@master Server]# /usr/lib64/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. master 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 <control D>.
next host to add: master
next host to add: slave 填入slave服务器的名称
next host to add: Ctrl + D
The current list of NIS servers looks like this:
master
slave
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/ibm/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/ibm'
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/ibm'
master has been set up as a NIS master server.
Now you can run ypinit -s master on all slave server.
当把这步执行完成后,会生成/var/yp/ypservers文件,而文件的内容就是:
master
slave
但被添加的服务器必须能在/etc/hosts内找到IP的对应关系
[root@master Server]# /etc/init.d/ypxfrd start
Starting YP map server: [ OK ]
#可以让 slave 服务器主动链接上 ypxfrd 来更新数据库, 可以免除系统管理原自己手动更新
接下来在slave里面来配置:
[root@slave Server]# vi /etc/sysconfig/network
增加一行:
NISDOMAIN=ibm
[root@slave Server]# vi /etc/ypserv.conf
在最下面加入这三行:
127.0.0.0/255.255.255.0 : * : * : none
192.168.18.0/255.255.255.0 : * : * : none
* : * : * : deny
[root@slave Server]# vi /etc/hosts
增加三行:
192.168.18.21 master
192.168.18.22 slave
192.168.18.23 client
[root@slave Server]# /etc/init.d/ypserv start
Setting NIS domain name ibm: [ OK ]
Starting YP server services: [ OK ]
[root@slave Server]# /usr/lib64/yp/ypinit -s master
We will need a few minutes to copy the data from master.
Transferring protocols.byname...
Trying ypxfrd ... success
Transferring rpc.byname...
Trying ypxfrd ... success
Transferring services.byservicename...
Trying ypxfrd ... success
Transferring protocols.bynumber...
Trying ypxfrd ... success
Transferring passwd.byname...
Trying ypxfrd ... success
Transferring mail.aliases...
Trying ypxfrd ... success
Transferring group.byname...
Trying ypxfrd ... success
Transferring hosts.byname...
Trying ypxfrd ... success
Transferring netid.byname...
Trying ypxfrd ... success
Transferring services.byname...
Trying ypxfrd ... success
Transferring passwd.byuid...
Trying ypxfrd ... success
Transferring hosts.byaddr...
Trying ypxfrd ... success
Transferring group.bygid...
Trying ypxfrd ... success
Transferring ypservers...
Trying ypxfrd ... success
Transferring rpc.bynumber...
Trying ypxfrd ... success
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.
在slave上面通过命令可以看到三个用户的信息
[root@slave Server]# ypcat -h localhost passwd.byname
user3 1$6Jk4toDH$pzUbaXqkG1KaaLmr9r8ef/:1003:1003::/home/user3:/bin/bash
user1 1$i51nyPc8$FsEJAt8Eye40k1uZOehE00:1001:1001::/home/user1:/bin/bash
user2 1$wPP3KMxv$NkGIbPpiUCQrMyonWiNup1:1002:1002::/home/user2:/bin/bash
但是直接id却看不到,这是什么原因?
[root@slave Server]# id user3
id: user3: No such user
|
|