当前位置:首页 > 问答 > 正文

Linux运维 文件共享 centos6下配置nis与nfs服务实现统一身份认证和网络文件系统

Linux运维实战:CentOS6下配置NIS与NFS实现统一认证与文件共享

场景引入

"小王,咱们部门现在有20多台服务器,每个同事都要在每台机器上创建账号,太麻烦了!"技术主管老张皱着眉头说,"而且项目文件分散在各台机器上,团队协作效率太低..."

如果你也遇到过这种困境,那么NIS(网络信息服务)和NFS(网络文件系统)的组合方案就是你的救星,通过NIS实现统一身份认证,NFS实现文件共享,让团队工作像使用单台电脑一样简单,下面我就手把手教你如何在CentOS6环境下配置这套系统。

基础环境准备

在开始前,确保你有:

  • 一台作为NIS/NFS服务器的主机(这里我们叫它nis-nfs-server)
  • 若干台客户端机器
  • 所有机器处于同一局域网
  • CentOS6系统(虽然现在新系统都用CentOS7/8了,但很多老项目还在用6)

注:由于CentOS6已停止维护,建议仅在内部测试环境使用,生产环境请考虑升级。

第一部分:配置NIS服务实现统一认证

安装必要软件包

在服务器端执行:

yum install -y ypserv ypbind yp-tools portmap

设置NIS域名

echo "NISDOMAIN=yourdomain" >> /etc/sysconfig/network
nisdomainname yourdomain

把"yourdomain"替换成你想要的域名,techteam"。

配置ypserv服务

编辑 /etc/ypserv.conf

# 允许所有客户端访问(生产环境应限制IP)
* : * : shadow : yes
* : * : passwd : yes
* : * : group : yes

初始化NIS数据库

/usr/lib64/yp/ypinit -m

执行后会提示你按Ctrl+D结束主机列表输入。

启动服务并设置开机自启

service portmap start
service ypserv start
service yppasswdd start
chkconfig portmap on
chkconfig ypserv on
chkconfig yppasswdd on

第二部分:配置NFS服务实现文件共享

安装NFS相关软件

在服务器端执行:

yum install -y nfs-utils portmap

创建共享目录并设置权限

mkdir -p /shared/data
chmod 1777 /shared/data  # 设置粘滞位,用户只能删除自己的文件

配置NFS导出目录

编辑 /etc/exports

Linux运维 文件共享 centos6下配置nis与nfs服务实现统一身份认证和网络文件系统

/shared/data *(rw,sync,no_root_squash)

如果只想特定网段访问,可以替换为168.1.0/24这样的网段。

启动NFS服务

service portmap start
service nfs start
service nfslock start
chkconfig portmap on
chkconfig nfs on
chkconfig nfslock on

验证NFS共享

exportfs -v

应该能看到你设置的共享目录信息。

第三部分:客户端配置

安装客户端软件

在每台客户端机器上执行:

yum install -y ypbind portmap nfs-utils

设置NIS域名

echo "NISDOMAIN=yourdomain" >> /etc/sysconfig/network
nisdomainname yourdomain

配置NIS客户端

编辑 /etc/yp.conf

domain yourdomain server nis-nfs-server

编辑 /etc/nsswitch.conf,修改以下行:

passwd:     files nis
shadow:     files nis
group:      files nis

配置自动挂载NFS共享

编辑 /etc/fstab

nis-nfs-server:/shared/data /mnt/data nfs defaults 0 0

然后创建挂载点并挂载:

mkdir -p /mnt/data
mount -a

启动客户端服务

service portmap start
service ypbind start
service netfs start
chkconfig portmap on
chkconfig ypbind on
service netfs on

第四部分:测试与验证

测试NIS认证

在服务器上创建一个测试用户:

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

在客户端尝试登录:

su - testuser

应该能正常登录,且家目录在/home/testuser

测试NFS共享

在客户端:

Linux运维 文件共享 centos6下配置nis与nfs服务实现统一身份认证和网络文件系统

touch /mnt/data/testfile
ls -l /mnt/data

应该能看到创建的文件,并且在服务器端的/shared/data下也能看到。

常见问题排查

  1. NIS客户端无法认证

    • 检查ypwhich命令是否返回正确的服务器名
    • 检查ypcat passwd是否能显示用户列表
    • 确认防火墙是否放行了NIS端口(通常为111和834)
  2. NFS挂载失败

    • 检查showmount -e nis-nfs-server是否能显示共享目录
    • 确认客户端和服务器的NFS版本兼容
    • 检查/etc/exports权限设置
  3. 性能问题

    • 大文件传输慢可以尝试在/etc/exports中添加async选项(但会降低可靠性)
    • 考虑升级网络硬件到千兆或更高

安全加固建议

  1. 限制NIS访问范围:

    # 在/etc/ypserv.conf中替换*为具体IP
    192.168.1.0/24 : * : shadow : yes
  2. 使用防火墙限制NFS访问:

    iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 111 -j ACCEPT
    iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 111 -j ACCEPT
    iptables -A INPUT -p tcp --dport 111 -j DROP
    iptables -A INPUT -p udp --dport 111 -j DROP
  3. 定期备份NIS数据库:

    tar czf /backups/nis_backup_$(date +%F).tar.gz /var/yp

写在最后

虽然这套NIS+NFS的方案在CentOS6上运行良好,但要提醒你的是,随着技术的发展,现在有更现代的替代方案:

  • 统一认证可以考虑FreeIPA或LDAP
  • 文件共享可以考虑SSHFS或更现代的分布式文件系统

但对于那些还在维护老系统的运维人员来说,掌握这套经典组合仍然很有价值,配置过程中如果遇到问题,记得查看/var/log/messages和各个服务的日志文件,大多数错误信息都能在那里找到线索。

希望这篇指南能帮你解决团队协作中的账号管理和文件共享难题!

发表评论