NFS+NIS+Autofs 实现用户的集中化管理
一:需求
某大学机房部署,需求如下:每个同学上机后可用自己的学号登录,登录后可访问自己的家目录并在里面读写自己的文件,每同学的文件全部都保存于服务器上,所有帐号由服务器统一管理。
二:分析
为了使每个同学在不同的机器上都能登录,如果机房里每个电脑都设置他们的账户,则就有了用户信息不同步的现象,修改账户密码也不能同步,而且也使帐号管理变得异常繁杂。所以不能让他们在本地进行账户认证,必须经过统一的服务器认证用户,这里我们需要用到nis服务。
每个同学的家目录都存放了自己的文件,每次在不同的机位登录后能进入自己的家目录,所以我们需要在服务器保存用户的文件,使用NFS挂载用户家目录到本地进行操作就可以彻底解决同步的问题,用户就像使用本地文件一样方便。
三:实施
首先进行 NFS NIS Autofs的配置安装
NIS服务需要以下软件包:ypserv、rpcbind、ypbind、yp-tools
NFS服务需要以下软件包:rpcbind、nfs-utils
Autofs服务需要以下软件包:autofs
centos7(服务器)ip:192.168.83.134
centos6 (客户端)ip:192.18.83.140
服务器包的安装:
[[email protected] ~]# yum -y install ypserv ypbind yp-tools
[[email protected] ~]# yum -y install nfs-utils
客户端包的安装:
[[email protected] ~]# yum install ypbind -y
[[email protected] ~]# yum -y install autofs
配置域:
#重启后生效
[[email protected] ~]# vim /etc/sysconfig/network
# Created by anaconda
NISDOMAIN=QI
#当前生效
[[email protected] ~]# nisdomainname QI
配置nis服务
[[email protected] ~]# vim /etc/ypserv.conf
127.0.0.1:*:*:none #允许本机访问nis
192.168.83.0/255.255.255.0:*:*:none #允许这个网段的访问nis
*:*:*:deny #其他的全部拒绝
[[email protected] ~]# systemctl restart ypserv #重启nis服务
[[email protected] ~]# systemctl enable ypserv #使nis开机自启动
创建用户:
[[email protected] ~]# useradd -u 2001 -d /app/homedir/junchao junchao
[[email protected] ~]# useradd -u 2002 -d /app/homedir/dapang dapang
[[email protected] ~]# for n in {1..5};do useradd -d /app/homedir/nisuser$n nisuser$n;echo centos |passwd --stdin nisuser$n;done
生成nis数据库
[[email protected] ~]# /usr/lib64/yp/ypinit -m
ctrl+d
y
客户端配置nis服务
[[email protected] ~]# setup
在Use NIS这里安空格即可选中
这里的QI是域,而ip是服务器的ip地址
NFS 共享家目录
[[email protected] ~]# vim /etc/exports.d/mage.exports
/app/homedir *(rw,sync) #注意*和()之间没有空格
autofs 自动挂载家目录
[[email protected] ~]# vim /etc/auto.master
/app/homedir /etc/auto.mage --timeout=10
[[email protected] ~]# vim /etc/auto.mage
* -fstype=nfs 192.168.83.134:/app/homedir/& #这里*匹配了用户名,&的值等于*,所以这样配置完后,每个用户都会自动挂载自己的家目录。
[[email protected] ~]# service autofs restart
测试
[[email protected] ~]# yptest
.........
.........
.........
Test 3: yp_match
WARNING: No such key in map (Map passwd.byname, key nobody)
1 tests failed
#Test 3: yp_match 下面的这个警告客户忽略,所以 1 tests failed 这个不算失败,这个是成功的
演示
[[email protected] ~]# su - junchao
[[email protected] ~]$ su - qijunchao
Password:
[[email protected] ~]$ pwd
/app/homedir/qijunchao
总结
这个项目集中化的管理账户,使得每个客户端登录后都能方便存取自己的文件,同时又解决了大量用户分散管理的一些繁琐,能大大提高管理人员的效率。