以下是在CentOS 7.9环境中搭建NIS服务、实现用户统一管理的详细步骤:


一、环境规划

  • 主服务器(Master):IP 192.168.1.10,负责存储用户数据。
  • 客户端节点(Node1/Node2):IP 192.168.1.11192.168.1.12,绑定到NIS主服务器。
  • NIS域名niscluster(可自定义)。

二、主服务器(Master)配置

1. 安装NIS服务

# 安装NIS服务端及工具
yum install -y ypserv yp-tools rpcbind

2. 设置NIS域名

# 设置临时NIS域名
nisdomainname niscluster

# 永久生效(写入配置文件)
echo "NISDOMAIN=niscluster" >> /etc/sysconfig/network

3. 初始化NIS数据库

# 启动rpcbind服务
systemctl start rpcbind
systemctl enable rpcbind

# 初始化NIS数据库
/usr/lib64/yp/ypinit -m
  • 根据提示输入主服务器主机名(如 master),按 Ctrl+D 结束。

4. 配置访问权限

# 允许所有客户端访问(生产环境需限制IP)
echo "0.0.0.0/0" > /var/yp/securenets

# 重启服务使配置生效
systemctl restart ypserv yppasswdd ypxfrd
systemctl enable ypserv yppasswdd ypxfrd

5. 防火墙配置

# 开放NIS相关端口
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=nis
firewall-cmd --reload

三、客户端节点(Node1/Node2)配置

1. 安装NIS客户端

yum install -y ypbind rpcbind

2. 设置NIS域名

# 设置临时NIS域名
nisdomainname niscluster

# 永久生效
echo "NISDOMAIN=niscluster" >> /etc/sysconfig/network

3. 配置NIS服务器地址

# 指定主服务器IP
echo "domain niscluster server 192.168.1.10" > /etc/yp.conf

4. 修改用户查询顺序

# 编辑nsswitch.conf,优先使用NIS
sed -i 's/^passwd:.*/passwd:     files nis/' /etc/nsswitch.conf
sed -i 's/^group:.*/group:      files nis/' /etc/nsswitch.conf
sed -i 's/^hosts:.*/hosts:      files dns nis/' /etc/nsswitch.conf

5. 启动服务

systemctl start rpcbind ypbind
systemctl enable rpcbind ypbind

四、用户统一管理操作

1. 在主服务器创建用户

# 创建用户(如用户user1)
useradd user1
passwd user1

# 更新NIS数据库
cd /var/yp
make

2. 客户端验证用户

在Node1/Node2上执行:

# 查看用户是否同步
getent passwd user1

# 尝试使用用户登录
ssh user1@node1

五、用户删除操作

1. 在主服务器删除用户

# 删除用户
userdel -r user1

# 更新NIS数据库
cd /var/yp
make

2. 客户端验证删除

在Node1/Node2上执行:

getent passwd user1  # 应无输出

六、故障排查

1. 常见问题

  • 客户端无法绑定

    • 检查主服务器防火墙是否开放端口(rpcinfo -p master)。
    • 确认客户端/etc/yp.conf中的IP是否正确。
  • 用户信息不同步

    • 主服务器执行 make 强制更新数据库。
    • 检查 /var/yp/Makefile 中是否包含需要同步的文件(如passwd、group)。

2. 日志检查

# 查看NIS服务日志
tail -f /var/log/messages | grep yp

七、安全增强建议

  1. 限制客户端IP

    • 编辑主服务器 /var/yp/securenets,仅允许Node1/Node2的IP:
      255.255.255.0   192.168.1.0
      
  2. 启用SELinux策略

    setsebool -P nis_enabled 1
    

通过以上步骤,您的集群将实现用户和组的集中管理,所有操作在主服务器执行后自动同步到客户端节点。

posted on 2025-03-31 11:31  LeeHang  阅读(66)  评论(0)    收藏  举报