文档章节

NIS服务器学习

s
 start0cheng
发布于 2015/02/09 23:12
字数 2265
阅读 14
收藏 0

前提环境:
1、安装的必须的软件包
ypserv,yp-bind,yp-tool

关于包的说明:
ypserv:服务器端必须的软件包
yp-bind:客户端需要的包
yp-tool:与yp相关的命令的包
PS:NIS服务跟NFS服务有些共同之处,都需要启动portmap服务

检查机器是否已安装的包,若没有,就安装相关的包。基本上系统默认已安装的包有yp-bind,yp-tool这两个。
[root@cheng ~]# rpm -qa | grep yp-*
ypbind-1.19-12.el5
yp-tools-2.9-0.1

安装Master服务器
[root@master ~]# rpm -qa | grep yp-serv
[root@master ~]#
[root@master ~]# yum install -y ypserv
安装完ypserv后,系统将会多了一些配置文件:
[root@master ~]# rpm -ql ypserv
/etc/rc.d/init.d/yppasswdd  #这个是客户端修改密码的服务
/etc/rc.d/init.d/ypserv     #ypserv的主要服务
/etc/rc.d/init.d/ypxfrd     #这个不知道是干嘛的
/etc/ypserv.conf    #主要配置文件

配置文件:
/etc/ypserv.conf 这个是主要的配置文件
/etc/hosts    非常重要,每一台主机都需要记录才行
/etc/netgroup 设置信任的主机与域名,这个我个人认为可以实现特定的主机用特定的用户登录的功能。
/var/yp/Makefile 建立与数据库有关的操作设置文件
/etc/sysconfig/network 指定NIS的域名

服务器提供的主要服务:
/usr/sbin/ypserv NIS服务器主要的服务
/usr/sbin/rpc.ypxfrp 用于master/slave主机之间传输数据库的服务
/usr/sbin/rpc.ypasswdd 提供额外的NIS客户端的用户密码修改服务。

与数据库有关的命令方面:
/usr/sbin/yppush  将master的数据库推送到slave上。
/usr/lib/yp/ypinit  这个是用于重新生成数据库
/usr/lib/yp/ypxfr   传送数据库的命令。ypxfr_1perday,ypxfr_1perhour,ypxfr_2perday

按照鸟哥私房菜的指引,做以下实验:
1、三台PC,Master,salve,client
2、配置一个NIS的环境,实现用户家目录的自动挂载
3、实现更新域数据据,普通用户可以自己更改自己的密码

建立一个NIS域
[root@master ~]# nisdomainname test
[root@master ~]# echo “NISDOMAIN=test” >> /etc/sysconfig/network
[root@master ~]# echo “/bin/nisdomainname test” >> /etc/rc.d/rc.local

修改本地的hosts文件
[root@master ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.10.40   master.test
192.168.10.41   slave.test
192.168.10.42   client.test

添加NIS的域名
[root@master ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master.test
NISDOMAIN=test

添加guest用户的一个脚本
[root@master ~]# cat useradd.sh
#!/bin/bash
#userd for add users
for (( i>1; i<100; i++ ))
do
useradd guest$i
echo 123456 | passwd –stdin guest$i
done

编辑NIS的配置文件,允许特定的网络访问NIS服务器
[root@master ~]# vi /etc/ypserv.conf
# 网段                                                            NIS服务器域名    数据库名称                    安全级别
192.168.10.0/255.255.255.0 : test       : *             : none

启动相关的服务
[root@master ~]# service portmap start   #需要启动 portmap服务
[root@master ~]# service ypserv start    #启动NIS的主要服务
[root@master ~]# service yppasswdd start # 启动该服务后,客户端可以自己更新密码了

验证服务:
[root@master ~]# rpcinfo -p localhost     #出现以下内容表明启动成功
程序             版本     协议           端口
100000    2   tcp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp    947  status
100024    1   tcp    950  status
100004    2   udp    773  ypserv
100004    1   udp    773  ypserv
100004    2   tcp    776  ypserv
100004    1   tcp    776  ypserv
100009    1   udp    785  yppasswdd
[root@master ~]# rpcinfo -u localhost ypserv
程序 100004 版本 1 就绪并等待
程序 100004 版本 2 就绪并等待

生成NIS数据库
[root@master ~]# /usr/lib/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers.  master.test 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.test
next host to add:
The current list of NIS servers looks like this:

master.test

Is this correct?  [y/n: y]  y
We need a few minutes to build the databases…
Building /var/yp/test/ypservers…
Running /var/yp/Makefile…
gmake[1]: Entering directory `/var/yp/test’
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/test’

master.test has been set up as a NIS master server.

Now you can run ypinit -s master.test on all slave server.
----------------------------------------------
关于ypinit的选项
OPTIONS
-m     If the local host is the NIS master.(只用于master)

-s     Set up a slave server with the database from master_name (在master上生成一个slave的NIS服务器)
----------------------------------------------

建立完数据库后,需要将服务进行重启!
[root@master ~]# service ypserv restart
停止 YP 服务器的服务:                                     [确定]
启动 YP 服务器的服务:                                     [确定]
[root@master ~]# service yppasswdd restart
停止 YP 口令服务:                                             [确定]
启动 YP 口令服务:                                             [确定]

允许Master\Slave之间的同步
[root@master yp]# vi /var/yp/Makefile
NOPUSH=true

添加相应的slave服务器
[root@master yp]# cat /var/yp/ypservers
master.test
slave.test
[root@master yp]#

配置slave服务器
[root@slave ~]# echo “NISDOMAIN=test” >> /etc/sysconfig/network
[root@slave ~]# nisdomainname test
[root@slave ~]# echo “/bin/nisdomainname test” >> /etc/rc.d/rc.local
[root@slave ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.10.41   slave.test
192.168.10.10   master.test
192.168.10.42   client.test

完成以上工作后,执行同步数据库的操作
[root@slave ~]# /usr/lib/yp/ypinit -s master.test
We will need a few minutes to copy the data from master.test.
Transferring services.byname…
Trying ypxfrd … not running

Transferring rpc.bynumber…
Trying ypxfrd … not running

Transferring passwd.byname…
Trying ypxfrd … not running

Transferring services.byservicename…
Trying ypxfrd … not running

Transferring ypservers…
Trying ypxfrd … not running

Transferring netid.byname…
Trying ypxfrd … not running

Transferring protocols.bynumber…
Trying ypxfrd … not running

Transferring rpc.byname…
Trying ypxfrd … not running

Transferring hosts.byaddr…
Trying ypxfrd … not running

Transferring mail.aliases…
Trying ypxfrd … not running

Transferring passwd.byuid…
Trying ypxfrd … not running

Transferring hosts.byname…
Trying ypxfrd … not running

Transferring protocols.byname…
Trying ypxfrd … not running

Transferring group.byname…
Trying ypxfrd … not running

Transferring group.bygid…
Trying ypxfrd … not running

你会发现了这么多的信息,都提示没ypxfrd没有运行,因此可见要同步数据库还得要运行ypxfrd服务
在主服务器上启动ypxfrd这个服务
[root@master test]# /etc/init.d/ypxfrd start
启动 YP 映射图服务器:                                     [确定]

重新同步数据库
[root@slave ~]# /usr/lib/yp/ypinit -s master.test
We will need a few minutes to copy the data from master.test.
Transferring services.byname…
Trying ypxfrd … success

Transferring rpc.bynumber…
Trying ypxfrd … success

Transferring passwd.byname…
Trying ypxfrd … success

Transferring services.byservicename…
Trying ypxfrd … success

Transferring ypservers…
Trying ypxfrd … success

Transferring netid.byname…
Trying ypxfrd … success

Transferring protocols.bynumber…
Trying ypxfrd … success

Transferring rpc.byname…
Trying ypxfrd … success

Transferring hosts.byaddr…
Trying ypxfrd … success

Transferring mail.aliases…
Trying ypxfrd … success

Transferring passwd.byuid…
Trying ypxfrd … success

Transferring hosts.byname…
Trying ypxfrd … success

Transferring protocols.byname…
Trying ypxfrd … success

Transferring group.byname…
Trying ypxfrd … success

Transferring group.bygid…
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.

查看用户的密码文件
[root@slave ~]# ypcat -h slave.test passwd.byname
guest60:$1$DuqvMNPM$qHeWMGE36AeIFbiiVuJML/:560:560::/home/guest60:/bin/bash
guest88:$1$TnjZhKpr$Ju838YqoW8PQD4mkXiE/B/:588:588::/home/guest88:/bin/bash
………省略了其他大量的账户
guest45:$1$VCm8pPqP$rT7YbQOhokIi1Q7wzfmY3/:545:545::/home/guest45:/bin/bash

现在测试一下我们的客户端:
将客户端加入到nis的域里面,然后再测试 autofs的设置部分:

总结一下客户端需要设置的地方:
1、在网络项加入NIS域
/etc/sysconfig/network
添加NISDOMAIN=test
2、修改HOSTS文件
/etc/hosts
192.168.10.42   client.test
192.168.10.41   slave.test
192.168.10.40   master.test

3、增加开机自动加入NIS域
/etc/rc.d/rc.local
/bin/nisdomainname test

4、修改用户密码的认证顺序文件
[root@client ~]# vi /etc/nsswitch.conf
passwd:     files nis
shadow:     files nis
group:      files nis

5、修改/etc/yp.conf客户端配置文件
[root@client ~]# cat /etc/yp.conf
domain test server master.test
domain test server slave.test

6、修改/etc/sysconfig/authconfig这个文件
[root@client ~]# vi /etc/sysconfig/authconfig
USENIS=yes

7、修改系统认证文件
[root@client ~]# vi /etc/pam.d/system-auth
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok nis

修改完成以上7项之后,我们需要重启两个服务
[root@client ~]# service portmap restart
停止 portmap:                                             [确定]
启动 portmap:                                             [确定]
[root@client ~]# service ypbind restart
关闭 NIS 服务:                                                                                                                  [失败]
设置 NIS 域名 test:                                         [确定]
打开 allow_ypbind 的 SELinux 布尔值
关联到 NIS 域:                                                                                                                    [确定]
监听 NIS 域服务器。
[root@client ~]#

--------完成以上配置后,我们可以开始进行测试了----
[root@cheng ~]# ssh guest1@192.168.10.42
guest1@192.168.10.42′s password:
Could not chdir to home directory /home/guest1: No such file or directory
-bash-3.2$
-bash-3.2$
#成功登陆了,但是没有家目录,为什么呢?因为guest1的家目录在master.test上,肯定不会在client这台机器上,那么我们应该如让guest1这个用户可以使用这台机,并且能够获得完整的目录环境呢?
#答案是使用autofs实现NIS用户的家目录自动挂载。

围绕这个思路:
1、要将guest1的家目录共享出来
2、实现客户端的自动挂载

实现这个思路需要:NFS+autofs的支持

将master.test上的home目录给共享出来
[root@master ~]# cat /etc/exports
/home   *(rw)
重启有关服务
[root@master ~]# service nfs restart
关闭 NFS mountd:                                          [确定]
关闭 NFS 守护进程:                                                                                                            [确定]
关闭 NFS quotas:                                          [确定]
关闭 NFS 服务:                                                                                                                    [确定]
启动 NFS 服务:                                                                                                                    [确定]
关掉 NFS 配额:                                                                                                                   [确定]
启动 NFS 守护进程:                                                                                                            [确定]
启动 NFS mountd:                                          [确定]

设置客户端机器上的自动挂载
编辑控制文件
[root@client ~]# vi /etc/auto.master
/home   /etc/auto.misc
配置配置文件
[root@client ~]# vi /etc/auto.misc
*               -fstype=nfs                     192.168.10.40:/home/&
重启服务
[root@client ~]# service autofs restart

验证:
[root@client home]# ll
总计 0
[root@client home]# su – guest
[guest@client ~]$ pwd
/home/guest
[guest@client ~]$

从现在的用户切换到另外一个用户
[guest@client ~]$ su – guest89
口令:
[guest89@client ~]$ pwd
/home/guest89
[guest89@client ~]$
再回到主目录
[root@client home]# ls
guest  guest89

本文出自 “潜入技术的海洋” 博客,请务必保留此出处http://myhat.blog.51cto.com/391263/450347

本文转载自:http://myhat.blog.51cto.com/391263/450347

s
粉丝 3
博文 260
码字总数 0
作品 0
广州
私信 提问
加载中

评论(0)

DHCP与NIS的配置实例

任务二:安装配置NIS,验证用户登录 拓扑图: 准备工作: 1.先克隆一个linux,一个作为服务器,一个作为客户端 2.先配好静态的IP地址,并测试网络连通性,能ping通即可。 3.给nis服务器改名 ...

文弦
2009/05/10
0
0
Linux NIS server

NIS(Network Information Service)使用来在共享需要在网络上所有主机上使用的信息的。NIS起源是Sun Microsystems的Yellow Page,但YP已经注册公司,所以就取了NIS这个名字, NIS服务器管理账户...

terry_hding
2015/01/30
566
0
如何批量修改200台以上web服务器密码

作为一个运维工作人员,有时候我们需要对自己负责的web服务器批量修改密码,如果一台一台改,会相对来说较为麻烦,所以在这里我们可以使用NIS账户统一认证。 我们假设有一部账号主控服务器来...

技术小阿哥
2017/11/27
0
0
NIS 用户集中管理

企业里面一般都会有好多服务器,如果一个员工要登录多台服务器,则需要在多台服务器中给用户添加用户名密码,如果服务器量大,员工数目也多,则很难以控制添加也麻烦。NIS就是用于用户机制哦...

wzl_up
2016/10/12
168
0
局域网内的NIS服务器器搭建管理

NIS(网络信息服务),用来集中账号信息管理。类似LDAP一样的功能哦,一般可以作为LAN内的用户认证服务器吧! NIS服务器提供的数据: /etc/passwd 提供用户账号UID GID 用户主目录位置 shell等...

Andy-xu
2014/07/26
736
0

没有更多内容

加载失败,请刷新页面

加载更多

00-Java 面试准备

面试之前 面试前准备简历需要注意的几个方面: 写简历、改简历,这个一定要干的。简历有两个作用,一个是吸引别人,能让别人邀请你去面试,这是前提;另一个是引导面试的人,让面试的人问你所...

源程序
今天
54
0
OSChina 周二乱弹 —— 大王(@罗马的王)颜值制霸Osc社区

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :Lunik的单曲《Seeing You Soar》 I hope you’re smiling,When seeing me soar. #今日歌曲推荐# 《Seeing You Soar》- Lunik 手...

小小编辑
今天
105
0
wordcount代码

1.写出map类 public class WCMapper extends Mapper<LongWritable,Text,Text,LongWritable>{ @Override protected void map(LongWritable key,Text value,Context context)throws IOExcepti......

七宝1
今天
59
0
Spring Batch 小任务(Tasklet)步骤

Chunk-Oriented Processing不是处理 step 的唯一方法。 考虑下面的一个场景,如果你仅仅需要调用一个存储过程,你可以在 ItemReader 中实现这个调用,然后在存储过程完成调用后返回 null。这...

honeymoose
今天
67
0
Linux日志分析

1. Linux日志文件的类型 2. 系统服务日志 2.1 syslogd的简介 2.2 syslogd的配置和使用 2.3 日志的安全性设置 2.4 远程日志记录服务 3. 日志的轮替 3.1 logrotate简介 3.2 logrotate的配置 3....

JiaMing
昨天
67
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部