NIS 服务器搭建记录

概述

NIS是Network Information Services (NIS server)的缩写,是为了管理一个网络中的用户账号 ,以方便用户在不同的主机上登录时只需要一个账号即可,它将用户的账号保存在一个主机上,用户登录时只需向其发送请求确认账号是否正确。

NIS 的主要功能:管理帐户信息

服务器端文件名 档案内容
/etc/passwd 提供用户账号、UID、GID、家目录所在、Shell 等等
/etc/group 提供群组数据以及 GID 的对应,还有该群组的加入人员
/etc/hosts 主机名与 IP 的对应,常用于 private IP 的主机名对应
/etc/services 每一种服务 (daemons) 所对应的埠口 (port number)
/etc/protocols 基础的 TCP/IP 封包协定,如 TCP, UDP, ICMP 等
/etc/rpc 每种 RPC 服务器所对应的程序号码
/var/yp/ypservers NIS 服务器所提供的数据库

NIS Server端配置

yp-tools :提供 NIS 相关的查寻指令功能。
ypbind :提供 NIS Client 端的设定软件。
ypserv :提供 NIS Server 端的设定软件。
rpcbind :就是 RPC ,系统一般会安装上。

安装NIS Server 端软件

1
2
[root@sg010 ~]# yum -y install yp-tools ypbind ypserv rpcbind
[root@sg010 ~]# rpm -qa | grep '^yp'

ypbind-1.20.4-33.el6.x86_64
yp-tools-2.9-12.el6.x86_64
ypserv-2.19-31.el6.x86_64

1
[root@sg010 ~]# rpm -qa | grep rpcbind

rpcbind-0.2.0-13.el6_9.x86_64

配置hosts文件

Hosts文件中之前的记录不要动,新增包含nis server 和 nis client 的主机与ip对应记录

1
2
3
4
[[root@sg010 ~]# vim /etc/sysconfig/network
\#增加以下两行
NISDOMAIN=hpcnis
YPSERV_ARGS="-p 1011"

配置nis服务

1
2
3
4
5
6
7
8
9
10
[root@sg010 ~]# egrep -v '^$|#' /etc/ypserv.conf
dns: no
files: 30
xfr_check_port: yes
\* : * : shadow.byname : port
\* : * : passwd.adjunct.byname : port
127.0.0.0/255.0.0.0 :*:*:none
218.193.126.128/255.255.255.128 :*:*:none
59.77.252.0/255.255.255.192 :*:*:none
\* :*:*:deny
1
2
[root@sg010 ~]# vim /etc/sysconfig/yppasswdd
YPPASSWDD_ARGS="--port 1012"

启动服务

启动后查看一下三个服务状态

1
[root@sg010 ~]# /etc/init.d/rpcbind status

rpcbind (pid 18813) is running…

1
[root@sg010 ~]# /etc/init.d/ypserv status

ypserv (pid 21054) is running…

1
[root@sg010 ~]# /etc/init.d/yppasswdd status

rpc.yppasswdd (pid 23087) is running…
并设置开机自启动

1
2
3
[root@sg010 ~]# chkconfig --level 35 ypserv on
[root@sg010 ~]# chkconfig --level 35 yppasswdd on
[root@sg010 ~]# chkconfig --level 35 rpcbind on

添加用户,设置密码

[root@sg010 ~]# useradd -u 1001 nisuser1
[root@sg010 ~]# echo ffffff|passwd –stdin nisuser1
[root@sg010 ~]# /usr/lib64/yp/ypinit -m
图片

Client 端配置

[root@sg011 ~]# yum -y install ypbind yp-tools
[root@sg011 ~]# rpm -qa |grep ‘^yp’
yp-tools-2.9-12.el6.x86_64
ypbind-1.20.4-30.el6.x86_64

配置NIS

1
[root@sg011 ~]# setup

xshell 的配色方案修改过,所以这里看到的图片颜色也不是那种蓝底色的
勾选NIS,启用NIS验证
图片
填写NIS的服务器域名和服务器地址
图片
Starting rpcbind: [ OK ]
Starting NIS service: [ OK ]
Binding NIS service: . [ OK ]
刚才的步骤其实就是做了以下操作

  • /etc/sysconfig/network (加入 NISDOMAIN 项目)
  • /etc/yp.conf (亦即是 ypbind 的配置文件)
  • /etc/nsswitch.conf (修改许多主机验证功能的顺序)
  • /etc/sysconfig/authconfig (CentOS 的认证机制)
  • /etc/pam.d/system-auth (许多登入所需要的 PAM 认证过程)
  • 启动了rpcbind 和 ypbind服务

/etc/sysconfig/network

图片

/etc/yp.conf

图片

/etc/nsswitch.conf

主机验证顺序

1
2
3
4
5
passwd: files nis
shadow: files nis
group: files nis
\#hosts: db files nisplus nis dns
hosts: files nis dns

/etc/sysconfig/authconfig

启用NIS

1
USENIS=yes

/etc/pam.d/system-auth

在pam验证过程中增加了nis

1
password sufficient pam_unix.so sha512 shadow nis nullok try_first_pass use_authtok

客户端简单粗暴的验证方法

切换用户验证

1
2
[root@sg011 ~]# grep nisuser1 /etc/passwd
[root@sg011 ~]# su - nisuser1

su: warning: cannot change directory to /home/nisuser1: No such file or directory
-bash-4.1$
图片

没有用户主目录

两种解决方式

  1. 新建一个/home/nisuser1目录,cp /etc/skel/* /home/niuser1
  2. 使用nfs,挂载nis server的home目录,客户端和服务器使用的是同一个用户目录,保持一致性(推荐)

    修改用户的默认shell

    在客户端执行 ypchsh
    图片

参考:http://cn.linux.vbird.org/linux_server/0430nis.php

独学无友,孤陋寡闻;学习记录,欢迎拍砖!