NIS服务器使用来集中验证用户合法性的服务器,也就是一个用户可以登录到连接到NIS服务器(NIS域)的所有计算机,NIS和Windows的域环境相似
Linux 系统中用户按地域分为
本地用户 远程用户(NIS,LDAP 用的更多,AD windows的)
NIS服务器的用户集中化认证过程
客户端在登陆web服务器,mail服务器,samba服务器,等等服务器的时候,客户端发出用户验证请求给服务器,服务器在将向NIS服务器提出验证用户请求,由NIS提供验证,将验证结果返回给服务器,然后服务器在决定是否对客户端提供服务
部署NIS服务器需要两个程序
ypbind 是寻找NIS服务器的客户端程序,并向服务器提出查询请求
ypserv 是回答客户端查询的服务器进程
配置NIS服务器提前准备
在服务端安装服务端程序
yum install ypserv
在客户端安装客户端程序
yum install ypbind
centos8
yum install yp-tools
提供yppasswd等工具等,来提供远程修改用户password等
服务端
用到的配置文件有
/etc/ypserv.conf : NIS主配置文件,可以控制NIS客户端是否可以访问NIS服务器
/etc/hosts : 记录主机和IP地址对应关系
开始配置NIS服务器
服务器端
1. 首先先创建一些测试用户
mkdir /home/nisuser
创建一个测试用户的文件夹,这样做是为了用户的分类集中管理
useradd -d /home/nisuser/nisuser1 nisuser1
echo 123456 | passwd --stdin nisuser1
2. 设置nisdomainname域名
永久修改 (不能马上生效,重启生效)
vi /etc/sysconfig/network
添加 NISDOMAIN=域名
临时修改 (马上生效,重启会失效)
nisdomainname 域名
两种都是用,因为这样可以达到,当前立即生效,重启之后也会生效的目的
3. 配置hosts文件
vi /etc/hosts
添加上ip地址和主机名的对应关系,注意是主机名,主机名可以用hostname命令查看
有dns就不用配置这个,暂时不知道这一步是干嘛的
有可能就是在等会生成数据库的时候,加入运行NIS服务器主机的时候,因为输入的是域名,所以需要有将域名解析到ip地址的功能
4. 配置主配置文件,设置访问NIS服务器的策略,提高安全性
vi /etc/ypserv.conf
Host: 主机ip地址网段和子网掩码 Domain:域 Map:数据库 Security:访问规则(none 不限制,port 只允许连接端口小于1024的主机连接,deny 拒绝访问)
设置策略的时候记得要遵守格式,可以参考它示例的格式,* 通配符代表所有
5. 建立数据库
建立之前需要启动ypserv服务,不然在建立的时候会报错
/usr/lib64/yp/ypinit -m
首先 会让你输入一个主机名字,这个主机名字就是说 让谁来运行NIS服务器,类似于指定主域,他自动会加入本机的主机名,所以我们不需要在增加了,直接按 ctrl+d 确认即可
然后按y表示确认,程序就会自动开始创建数据库,创建在了/var/yp/下面,数据库名字是域名,就是NISDOMAINNAME的值
域一旦修改,就得重新生成域数据库
修改也就是,用户的修改等等
6. 启动或者重启ypserv服务和yppasswdd服务
7. 设置防火墙规则放行ypserv服务等,设置selinux为警告模式也就是许可模式或者直接关闭
客户端
1. 加入域
安装ypbind后执行 authconfig-tui
如果不执行此步直接启动ypbind会启动不成功 【2021/04/20】
2. 重启ypbind
3. 验证
执行 su 域用户名 或者 ssh
当用 id 域用户名的时候可以看到与用户的信息,但是passwd文件中是没有该用户信息的
4. 但是我们客户端主机上没有用户主目录,所以切换的时候会提示 ”无法 xxx“
在客户端修改域用户password
执行 yppasswd 命令
首先输入旧password 然后输入两次新password,即可修改成功
设置客户端自动挂载NIS用户家目录
服务端
1. 安装 nfs-utils(手动)和rpcbind 这两个包默认已经安装
一般不需要手动去安装
centos8 似乎需要手动安装
2. 编辑nfs配置文件,配置哪些文件需要共享
格式为
共享目录 可访问网段(权限列表) * 通配符代表所有
3. 重启nfs服务
4. 查看nfs共享目录
showmount -e serverip
如果可以看到刚才共享的目录,那么配置成功
客户端
1. 安装 autofs 和 nfs 的某些包 我直接安装 nfs* 就行了
yum install autofs
一般默认也是安装的
2. 编辑autofs配置文件
vi /etc/auto.master
加上一行 格式为
/挂载点 /权限配置文件
3. 手动创建刚才的权限配置文件
*(所有文件夹) -rw 挂载的目录(ServerIP:/Path/&)&符号表示用户名,网络路径中用户名都用 “&”来表示,表示的是当前登录的用户,实现当前登录哪个用户就立即把那个用户的目录挂载过来,其他用户的目录不会取消挂载,但是有时候过了一阵子,他会自动卸载挂载,在你退出和某个用户登录的时候,这个符号可能类似于一个变量,就是当前登录的用户
这里一定要加上&否则挂载过来文件夹的所属组和所属用户都是root导致登录的用户无法访问
4. 设置autofs 为开机自启 并重启autofs服务 前面所有的服务如果希望它可以开机自动启动,都可以设置此项
systemctl enable autofs
systemctl restart autofs
【2021/04/19 20:17】
在客户端启动ypbind之前,服务端必须先设置好nisdomainname
在客户端开始重启autofs执行自动挂载之前,必须先在服务端重启nfs服务器,也就是要让nfs服务器的共享文件数据库生效,也就是在编辑过nfs共享文件数据库过后,你必须要重启服务,它才能生效,客户端才能挂载