nis使用
简介
NIS(Network Information Service)是一种为网络中所有的机器提供网络信息的系统,包括用户名、密码、主目录、组信息等。NIS服务主要用于集中控制多个系统管理数据库的网络用品,其全称是Network Information Service。
在Linux环境下,NIS服务主要由NIS客户端和NIS服务器组成。NIS服务器上存放了所有用户账户信息,包括用户名、密码、主目录、组信息等。NIS客户端通过网络访问NIS服务器,获取这些信息并使用。
安装服务
yp-tools :提供 NIS 相关的查寻指令功能
ypbind :提供 NIS Client 端的设定软件
ypserv :提供 NIS Server 端的设定软件
rpcbind :就是 RPC 一定需要的数据
yum install -y ypserv ypbind nfs-utils rpcbind
修改nis domain
vim /etc/sysconfig/network
#永久修改 重启服务器生效
NISDOMAIN=vdi-nis-server
YPSERV_ARGS=-p 1011
#临时修改 立即生效
#查看
nisdomainname
#设置
nisdomainname vdi-nis-server
修改hosts配置
vim /etc/hosts
178.101.160.218 nis-server-1
178.101.160.133 nis-client-1
178.101.160.239 nis-client-2
修改服务端配置
主要配置files、ip规则
客户端规则格式为:Host:Domain : Map : Security+
Host:指定客户端,可以指定具体IP 地址,也可以指定一个网段
Domain :设置NIS 域名,这里的 NIS 域名和 DNS 中的域名并没有关系。
Map:设置可用数据库名称,可以用“*”代替所有数据库。
Security:安全性设置。主要有none、port和 deny 三种参数设置none:没有任何安全限制,可以连接 NIS 服务器。port:只允许小于1024 以下的端口连接 NIS 服务器。deny:绝连接NIS 服务器。
vim /etc/ypserv.conf
# NIS 服务器大多使用于内部局域网络,只要有 /etc/hosts 即可,不用DNS
dns: no
# 预设会有 3000 个数据库被读入内存当中,其实我们的账号文件并不多, 3000个足够用
files: 3000
# 开放本地接口
127.0.0.0/255.255.255.0 : * : * : none
# 你信任的网段
178.101.160.0/255.255.255.0 : * : * : none
10.52.18.0/255.255.255.0 : * : * : none
# 拒绝所有其它的网段
* : * : * : deny
# 这些都可以不设置,直接使用 防火墙 来管理
修改 yppasswdd
vim /etc/sysconfig/yppasswdd
YPPASSWDD_ARGS="--port 1012"
启动服务
启动并加入开机启动项
systemctl start ypserv
systemctl status ypserv
systemctl enable ypserv
netstat -naplt| grep 1011
systemctl start yppasswdd
systemctl status yppasswdd
systemctl enable yppasswdd
建立数据库
可以新增用户,以前存在的也可用
# 添加测试用户
useradd test1
passwd test1
# 初始化数据库 将之前hosts添加的主机nis-server-1加入
/usr/lib64/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. vdi 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: vdi
next host to add: nis-server-1
next host to add:
The current list of NIS servers looks like this:
vdi
nis-server-1
Is this correct? [y/n: y] y
安装客户端
# 安装
yum install -y ypbind setuptool
# 设置
setup
输入setup后
如果系统很快的就跳回到第一个的画面,代表你的设定理论上是没有问题的
检查:yptest
查询所有用户:ypcat passwd
查询所有组:ypcat group
查询指定用户指定组:ypmatch test1 passwd ypmatch test1 group
修改密码:yppasswd -p test2
修改登录shell:ypchsh test1
ypwhich
-d domain使用'domain'代替默认的domain
-m mname为map 'mname'找到NIS主服务器
-t禁止映射昵称转换
-V n ypbind版本,默认为V2
-x显示映射昵称翻译表
设定 NIS client 你可能需要动到底下的文件:
/etc/sysconfig/network :就是 NIS 的域名
/etc/hosts :至少需要有各个 NIS 服务器的 IP 与主机名对应
/etc/yp.conf :这个则是 ypbind 的主要配置文件,里面主要设定 NIS 服务器所在
/etc/sysconfig/authconfig:规范账号登入时的允许认证机制
/etc/pam.d/system-auth :这个最容易忘记!因为账号通常由 PAM 模块所管理,所以你必须要在 PAM 模块内加入 NIS 的支持才行
/etc/nsswitch.conf :这个文件可以规范账号密码与相关信息的查询顺序,默认是先找 /etc/passwd 再找 NIS 数据库
客户端自动挂载 NIS 用户目录
服务端启动nfs
# 安装
yum -y install nfs-utils rpcbind
# 配置NFS,把 NIS 用户的家目录共享出去
# NIS 用户在客户端登录,使用 autofs 自动挂载 NIS 用户家目录
vim /etc/exports
/home 178.101.160.0/255.255.255.0(rw,sync)
systemctl start nfs
systemctl status nfs
systemctl enable nfs
客户端安装autofs
# 安装autofs
yum -y install autofs
vim /etc/auto.master
# 如果要自动挂载/home,就去找/etc/auto 这个配置文件。
/home /etc/auto
# 编辑auto映射文件
# autofs 支持挂载目录使用通配符 * 表示
# 而网络路径中的用户名使用“&”表示如果进入本地的 /home 中
# 这个前缀已经在刚才的/etc/auto.master 中指定了
# 就会把178.101.160.218 上 /home 上对应的目录挂过来
vim /etc/auto
* -rw 178.101.160.218:/home/&
systemctl enable autofs
systemctl start autofs
systemctl status autofs
测试